2017-07-17 9 views
0

我正在使用VB.NET发送电子邮件。 的电子邮件的例子可能是这样的:VB.NET使用SMTP电子邮件添加新行

名称:(名称)
邮箱地址:(电子邮件地址)
电话号码:(电话号码)

以下作品下面的代码片段。它只是放在太多的行间距。我试图摆脱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 

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

谢谢!

+1

你确定额外的间距是由于消息中的新行,而不仅仅是一些样式? – litelite

+1

此外,“在你的例子都搞砸了 – litelite

+0

它是明文还是HTML格式? – litelite

回答

1

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

Dim fullName As String = "Karen Payne" 
Dim emailAddress As String = "[email protected]" 
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> 

如果仍然有太多你有很多空间让我知道。

+0

我能够将其更改为html格式,它为我工作,谢谢! – AppDude27

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”