如何将字符串发送到包含新行(回车)的电子邮件?
问题在于我将字符串发送到电子邮件,电子邮件将删除回车。
Dim myApp As New Process
emailStringBuilder.Append("mailto:")
emailStringBuilder.Append("&subject=" & tmpID & " - " & subject)
emailStringBuilder.Append("&body= " & msgStringBuilder.ToString)
myApp = System.Diagnostics.Process.Start(emailStringBuilder.ToString)
答案 0 :(得分:1)
我猜你在没有新行的情况下添加你的StringBuilder,因为我刚刚测试了它,它对我来说很好。
Imports System.Text
Module Module1
Sub Main()
Dim sb As New StringBuilder
sb.AppendLine("Line 1")
sb.AppendLine("Line 2")
sb.Append("Line 3" & vbCrLf)
sb.Append("Line 4 without CRLF")
sb.Append("Line 5")
Console.WriteLine(sb.ToString)
End Sub
End Module
对于上面的代码,我得到以下输出
Line 1 Line 2 Line 3 Line 4 without CRLFLine 5
希望这有帮助。
修改强>
好的,基于新信息(关于电子邮件),上述内容仍然适用。如果您添加到.Append
的字符串构建器,您将丢失,或者更准确地说,不会看到换行符。相反,您必须使用.AppendLine
,它会将所有重要的CR和LF代码添加到字符串的末尾。
但是,我对你如何发送电子邮件感到有些困惑。我以前从网页上看到过这种方式,但从来没有从vb.net开始。以这种方式发送电子邮件几乎肯定会迫使您发送没有换行符的电子邮件!!
我是否可以建议您查看Microsoft的以下内容,了解如何使用System.Web.Mail命名空间从Visual Basic发送电子邮件。这并不难,你会对你发送的电子邮件有更多的控制权......
答案 1 :(得分:0)
对于任何寻找可以工作的内容的人都会发送到电子邮件,你想要像@CResults一样回答,但是每行添加"%0A"
。这将通过大多数电子邮件客户端。
答案 2 :(得分:0)
您也可以通过发送包含HTML格式的正文的电子邮件来实现此目的:
当邮件正文为HTML格式时,请在字符串中添加<br>
标记。如果正文为HTML格式,则vbCrLf
和StringBuilder
无法正常工作。
Dim mail As New MailMessage
mail.IsBodyHtml = True
mail.Body = "First Line<br>"
mail.Body += "Second Line<br>"
mail.Body += "Third Line"
如果不是HTML格式,则使用vbCrLf
或vbNewLine
:
Dim mail As New MailMessage
mail.Body = "First Line" & vbCrLf
mail.Body += "Second Line" & vbNewLine
mail.Body += "Third Line"