我可以通过编程方式更改我发送的电子邮件中的字体和字体大小吗?

时间:2012-07-15 21:18:21

标签: c# wpf fonts smtp gmail

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

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)。

更新

虽然我仍然希望使用更好看的字体(例如西方字体),但我的主要问题是在正文中使用我称之为“盒子”的字符(正方形字符)。我发现以下问题纠正了这个困境:

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

(虽然在记事本和VS编辑器中,它看起来不像一个盒子,但就像一个被淹没的问号或者其他类似的东西) - 实际上,在我的问题的格式化版本中,它看起来也像这里一样。在问题编辑器(术语?)中,它看起来像方形/方框。

2 个答案:

答案 0 :(得分:4)

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

但如果您想继续选择发送文本副本和HTML,请使用MailMessage.AlternateViews

  

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

答案 1 :(得分:2)

尝试:

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

你会明白的。