2

我正在使用这样的代码发送电子邮件:

var smtp = new SmtpClient
     {
       Host = "smtp.gmail.com",
       Port = 587, //465?
       EnableSsl = true,
       DeliveryMethod = SmtpDeliveryMethod.Network,
       UseDefaultCredentials = false,
       Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
     };
using (var message = new MailMessage(fromAddress, toAddress)
     {
       Subject = subject,
       Body = body
     })
{
  smtp.Send(message);
}

...而且它的工作原理很花哨。不过,现在我希望能够控制所使用字体的大小和样式(例如 Western 12)。

更新

虽然我仍然想使用更好看的字体(例如 Western),但我的主要问题是正文中有我称之为“框”的字符(即方形字符)。我发现以下内容纠正了这个困境:

body = body.Replace("�", "");

(尽管在记事本和 VS 编辑器中,它看起来不像一个盒子,而是像一个孤立的问号或类似的东西) - 事实上,在我的问题的格式化版本中,它看起来也是如此。在问题编辑器(术语?)中,它看起来像正方形/框。

4

2 回答 2

4

您可以将 MailMessage 作为 HTML 发送,在这种情况下,您将获得 HTML 与 CSS 的所有格式化优势

但是,如果您想保留发送文本和 html 副本的选择,请使用MailMessage.AlternateViews

取自 MSDN :还使用 AlternateViews 属性以不同格式指定电子邮件消息的副本。例如,如果您以 HTML 格式发送消息,您可能还希望提供纯文本版本,以防某些收件人使用无法显示 HTML 内容的电子邮件阅读器。

于 2012-07-15T21:24:28.077 回答
2

尝试:

var message = new MailMessage(fromAddress, toAddress)
{
   Subject = subject,
   IsBodyHtml = true,
   Body = "<strong>" + body + "</strong>"
}

你会明白的。

于 2012-07-15T21:22:35.800 回答