在VB.NET中向SMTP电子邮件正文添加多行

8
我可以使用这段代码在我的Exchange服务器上发送电子邮件。
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

但是我怎么才能在正文中添加多行文本呢?

准备一个包含多行的字符串消息并将其全部添加到正文属性中有什么问题吗? - Steve
6个回答

10

把它当作普通的文本对象处理,可以在句子之间使用Environment.NewLinevbNewLine

StringBuilder在这里很有用:

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

mail.Body = sb.ToString()

4
如果您的邮件正文需要为HTML格式,请将<br>标签添加到字符串中。如果正文为HTML格式,则vbCrLfStringBuilder无法使用。
Dim mail As New MailMessage
mail.IsBodyHtml = True
mail.Body = "First Line<br>"
mail.Body += "Second Line<br>"
mail.Body += "Third Line"

如果内容不是HTML格式的话,这里其他的答案似乎都很好。

4

我建议你先创建一个变量用于存储邮件正文,然后再将其添加到mail.Body中。代码示例如下:

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

那将附加换行符,你应该在电子邮件中每行都有自己的内容。

1
尝试在字符串中使用system.environment.newline,应该可以正常工作。

1

像这样吗?

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

然后

mail.Body = myMessage

0

对我有效的方法是在字符串中使用

strBody = "This is for testing SMTP mail from me<BR> line 2" 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接