文本框文本为c#中的电子邮件的html

时间:2010-01-21 17:26:43

标签: c# email

我正在尝试从我的c#网站发送smtp电子邮件。除了当文本框文本中有换行符,它在电子邮件中没有格式化这些内容时,它会发送正常的内容。相反,它只有一长串文本。

电子邮件是html编码的,所以我该怎么做:

tbDeliver.Text

在电子邮件中保留换行符吗?

提前致谢

7 个答案:

答案 0 :(得分:8)

试试这个:

var textBoxText = tbDeliver.Text.Replace(Environment.NewLine, "<br>");

答案 1 :(得分:3)

我使用正则表达式执行此操作以确保我获得任何新行的风格:

Regex matchNewLine = new Regex("\r\n|\r|\n", RegexOptions.Compiled | RegexOptions.Singleline);
string result = matchNewLine.Replace(originalText, "<br />");

答案 2 :(得分:2)

确保邮件的正文格式为Html类型。如果您使用system.web发送邮件:

System.Web.Mail.MailMessage mail = new System.Web.Mail.MailMessage();
mail.BodyFormat = Web.Mail.MailFormat.Html;

如果您使用的是system.net:

    System.Net.Mail.MailMessage mail = New System.Net.Mail.MailMessage();
    mail.IsBodyHtml = True;

答案 3 :(得分:0)

您可以将.Text中的\r\n替换为可能有效的<br/>,是否在段落<p>中输出?

答案 4 :(得分:0)

您需要将\n替换为<br>中的tbDeliver.Text

string formatted = tbDeliver.Text.Replace ("\n", "<br />");

答案 5 :(得分:0)

Html将换行符编码为'&lt; br /&gt;'或'&lt; p&gt;'标签。

答案 6 :(得分:-1)

ACK!

永远不会使用Environment.NewLine替换&lt; BR&gt;电子邮件中的标签。

我不能强调这一点。

在某些平台上,Environment.NewLine将是\ n,这在SMTP世界中是一个巨大的禁忌。

在SMTP中,所有换行符必须为\ r \ n。

最终,某些服务器仅使用\ n。

会将您的邮件拒绝为垃圾邮件

始终使用\ r \ n或vbCrLf替换&lt; br&gt;标签