Adding multiple lines to body of SMTP email VB.NET

被刻印的时光 ゝ 提交于 2020-01-12 19:28:49

问题


I can use this code to send an email on my Exchange server

Try
        Dim SmtpServer As New SmtpClient
        Dim mail As New MailMessage
        SmtpServer.Credentials = New Net.NetworkCredential()
        SmtpServer.Port = 25
        SmtpServer.Host = "email.host.com"
        mail = New MailMessage
        mail.From = New MailAddress("myemail@email.com")
        mail.To.Add("otheremail@email.com")
        mail.Subject = "Equipment Request"
        mail.Body = "This is for testing SMTP mail from me" 


        SmtpServer.Send(mail)

    catch ex As Exception
        MsgBox(ex.ToString)
    End Try

But how can I add multiple lines to the body?


回答1:


Just treat it like a normal text object where you can use Environment.NewLine or vbNewLine between sentences.

StringBuilder is useful here:

Dim sb As New StringBuilder
sb.AppendLine("Line One")
sb.AppendLine("Line Two")

mail.Body = sb.ToString()



回答2:


I would create a variable for your body and then add that to the mail.Body so it would look something like this.

Try
    Dim strBody as string = ""
    Dim SmtpServer As New SmtpClient
    Dim mail As New MailMessage
    SmtpServer.Credentials = New Net.NetworkCredential()
    SmtpServer.Port = 25
    SmtpServer.Host = "email.host.com"
    mail = New MailMessage
    mail.From = New MailAddress("myemail@email.com")
    mail.To.Add("otheremail@email.com")
    mail.Subject = "Equipment Request"
    strBody = "This is for testing SMTP mail from me" & vbCrLf
    strBody += "line 2" & vbCrLf
    mail.Body = strBody

    SmtpServer.Send(mail)

catch ex As Exception
    MsgBox(ex.ToString)
End Try

That will append the line breaks and you should have each line on it's own in the email.




回答3:


If the body of your message needs to be in HTML format, add the <br> tags right in your String. vbCrLf and StringBuilder don't work if the body is in HTML format.

Dim mail As New MailMessage
mail.IsBodyHtml = True
mail.Body = "First Line<br>"
mail.Body += "Second Line<br>"
mail.Body += "Third Line"

If it is not in HTML format, the other answers here appear to be good.




回答4:


Like this?

Dim myMessage as String = "This is for testing SMTP mail from me" + Environment.NewLine
myMessage = myMessage + "Line1" + Environment.NewLine

then

mail.Body = myMessage



回答5:


try the system.environment.newline in the the string ... should work



来源:https://stackoverflow.com/questions/10283400/adding-multiple-lines-to-body-of-smtp-email-vb-net

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!