VB.NET使用SMTP电子邮件添加新行

时间:2017-07-17 19:38:14

标签: vb.net smtp newline

我正在使用VB.NET发送电子邮件。 电子邮件的示例可能如下所示:

姓名:(姓名)
电邮地址:(电邮地址)
电话号码:(电话号码)

以下代码段有效。它只是在线之间放置太多的间距。我已经尝试摆脱System.Environment.NewLine,但我的行不再格式化了。

我也尝试过不使用StringBuilder,它也没有正确格式化。

'Email Generation ----------------------------------------------------
 Dim builder As New StringBuilder
 builder.AppendLine("Name: " + Name + System.Environment.NewLine")
 builder.AppendLine("Email Address: " + EmailAddress+ System.Environment.NewLine")
 builder.AppendLine("Phone Number: " + PhoneNumber+ System.Environment.NewLine")

 emailBody = builder.ToString

任何建议肯定会有所帮助!

谢谢!

2 个答案:

答案 0 :(得分:1)

确保您拥有正确的编码,如果您没有使用< br>然后需要将IsBodyHtml设置为false。这是一个简单的例子:

Dim server As New SmtpClient
Dim email As New MailMessage
server.UseDefaultCredentials = False
server.Credentials = New System.Net.NetworkCredential("x", "x")
server.Port = 25
server.EnableSsl = False
server.Host = "x"

email.From = New MailAddress("x")
email.To.Add("x")
email.BodyEncoding = System.Text.Encoding.UTF8
Dim s = "Name: " + vbNewLine + "Email: " + vbNewLine + "Phone"
email.Body = s
server.Send(email)

我用“x”

替换了所有凭证/地址

答案 1 :(得分:1)

如果使用html格式而不是纯文本,请尝试以下

Dim fullName As String = "Karen Payne"
Dim emailAddress As String = "payne@gmail.com"
Dim phoneNumber As String = "555-334-1111"
Dim content =
    <body>
        <table>
            <tr>
                <td>Name: <%= fullName %></td>
            </tr>
            <tr>
                <td>Email address: <%= emailAddress %></td>
            </tr>
            <tr>
                <td>Phone number: <%= phoneNumber %></td>
            </tr>
        </table>
    </body>

如果这还有太多空间让你告诉我。