【发布时间】:2018-09-04 18:04:27
【问题描述】:
我正在通过 c# 发送电子邮件。邮件的正文是动态的,即用户在发送邮件之前填写它。问题是正文是单行而不是应有的多行。
using (MailMessage mm = new MailMessage(txtEmail.Text.Trim(), email.Trim()))
{
try
{
mm.CC.Add(txtcc.Text.Trim());
mm.Subject = txtSubject.Text.Trim();
mm.Body = txtBody.Text;
MemoryStream pdf = new MemoryStream(bytes);
mm.Attachments.Add(new Attachment(pdf, "Report.pdf"));
mm.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.EnableSsl = true;
NetworkCredential credentials = new NetworkCredential();
credentials.UserName = txtEmail.Text.Trim();
credentials.Password = txtPassword.Text.Trim();
smtp.UseDefaultCredentials = true;
smtp.Credentials = credentials;
smtp.Port = 587;
smtp.Send(mm);
}
catch (Exception ex)
{
Alert.show1("Could not send the e-mail - error: " + ex.Message, this);
return;
}
}
【问题讨论】:
-
您需要在换行符/r/n 中插入换行符。
-
@AliK 我没听懂你!!在哪里放置类似的中断 mm.Body = txtBody.Text;
-
使用这个:
mm.Body = "First Line <br /> second line";。您可以将\n替换为<br /> -
@EhsanMohammadi 我有多行,我们有其他方法吗
-
您将
IsBodyHtml设置为true。那么是它是HTML吗?如果是这样,那么它是否在一行中并不重要。客户端将再次将<br />渲染到新行。如果它实际上是纯文本,那么您应该以纯文本形式发送或通过用<br />替换换行符来“htmlify”内容(并可能确保它是有效的 html)
标签: c#