Solved

Email strips crlf and replaces with spaces

Posted on 2009-04-08
3
316 Views
Last Modified: 2012-05-06
I have a piece of code that sends out emails, it works absolutely fine except when I want to include crlfs in the body. It replaces them with spaces. Well actually, the first crlf works OK, but the ones after the first do not. I wonder if that is important?

In other applications, I'm inserting the emails into an Oracle table, then using an email application that runs every 30 mins to check this table and send out any pending emails. When I am originally inserting the email into the table, I'm using the vbCrLf character if that makes any difference.

The code is below and if you want to test it, you can use something like this for the body of the email:

Customer ID: 123456
Customer Name: TOOL & EQUIPMENT SUPPLIES
Order ID: C12345
Order Amount: $500.00
Requested By: BRANEY

If you notice in the code below, the debug.print line checks what it is right before it sends and it seems to be perfectly fine at this point. I've also tried it as an HTML email and that doesnt work either.
Private Function SendEmail(ByVal strTo As String, ByVal strSubject As String, ByVal strBody As String, ByVal strAttachment As String, ByVal strFrom As String, Optional ByVal CCTo As String = "") As Boolean
 

        ' Take the parameters passed in the function and create an email message

        Dim oMessage As MailMessage = New MailMessage(strFrom, strTo, strSubject, strBody)
 

        oMessage.IsBodyHtml = False
 

        ' Does the message have a cc address?

        If CCTo <> "" Then

            oMessage.CC.Add(CCTo)

        End If

        

        ' Does the message have an attachment?

        Dim oAttachment As Attachment = Nothing

        If strAttachment <> "" Then

            oAttachment = New Attachment(strAttachment)

            oMessage.Attachments.Add(oAttachment)

        End If
 

        Try

            Dim oClient As New SmtpClient(My.Settings.SMTPServer, My.Settings.PortNumber)
 

            Debug.Print(oMessage.Body)
 

            oClient.Send(oMessage)
 

            ' Release the attachment if it exists

            If oAttachment IsNot Nothing Then

                oAttachment.Dispose()

                oAttachment = Nothing

            End If
 

            ' Email sent successfully

            Return True
 

        Catch ex As System.Net.WebException
 

            ' Email Failed

            Console.WriteLine("0", ex.Message)

            Console.Write("0", ex.ToString())

            Return False
 

        End Try

    End Function

Open in new window

0
Comment
Question by:braney
  • 2
3 Comments
 
LVL 5

Accepted Solution

by:
burningmace earned 50 total points
Comment Utility
Try replacing the vbCrLfs with the <br /> HTML tag. For example "Customer Name: Bob<br />Order Total: $500". I think the SmtpClient defaults to HTML email these days - but don't quote me on that.
0
 

Author Comment

by:braney
Comment Utility
Worked great that, thanks!

I just switched it to

oMessage.IsBodyHtml = True

and added a line before it makes the message

strBody = strBody.Replace(vbCrLf, "<br />")

and seems to have worked fine!
0
 
LVL 5

Expert Comment

by:burningmace
Comment Utility
Glad to be of help :)
0

Featured Post

Control application downtime with dependency maps

Visualize the interdependencies between application components better with Applications Manager's automated application discovery and dependency mapping feature. Resolve performance issues faster by quickly isolating problematic components.

Join & Write a Comment

I tend toward trying the newest hardware and software.  Thiss sometimes works out to my benefit, and sometimes not.  Because I downloaded and installed Android 5.x (http://www.experts-exchange.com/articles/18084/Upgrading-to-Android-5-0-Lollipop.htm…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
This video shows syntax for various backup options while discussing how the different basic backup types work.  It explains how to take full backups, incremental level 0 backups, incremental level 1 backups in both differential and cumulative mode a…
This Micro Tutorial will demonstrate the easy use of Gmail embedding images in your email so the recipient of your email can view them in context.

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now