?
Solved

Email strips crlf and replaces with spaces

Posted on 2009-04-08
3
Medium Priority
?
330 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 5

Accepted Solution

by:
burningmace earned 200 total points
ID: 24100377
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
ID: 24100697
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
ID: 24100948
Glad to be of help :)
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Using SQL Scripts we can save all the SQL queries as files that we use very frequently on our database later point of time. This is one of the feature present under SQL Workshop in Oracle Application Express.
Are you using email marketing software? If not, you're missing out on effortless marketing and the reaching of desired conversion rates through email marketing software.
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …
Suggested Courses

800 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