我正在编写一个WPF .net应用程序,向几个人发送电子邮件。
我已经让程序正常运行,以便使用以下代码发送纯文本电子邮件:
private void OnSendEmails(object sender, RoutedEventArgs e)
{
using (SmtpClient smtpClient = new SmtpClient("<mySMTPserver>", <somePort>))
{
smtpClient.Timeout = 10000;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new NetworkCredential("<myusername>", "<mypassword");
foreach (string address in Addresses)
{
try
{
Console.Out.WriteLine("Sending e-mail to: {0}", address);
smtpClient.Send(Sender, address, Subject, Body);
Console.Out.WriteLine("Sent e-mail to: {0}", address);
}
catch (Exception ex)
{
Console.Out.WriteLine("Exception thrown while sending to : {0}\r\n\r\n{1}", address, ex);
}
Console.Out.WriteLine("Sleeping");
Thread.Sleep(Seconds * 1000);
Console.Out.WriteLine("Done Sleeping");
}
}
}
我想发送几封电子邮件给精选的人群来宣传我写的应用程序。但是,我想向他们发送除纯文本之外的其他内容。我可以使用我希望发送的内容填充RichTextBox,但是,我不知道如何发送它,因为SmtpClient只需要一个'字符串'来表示电子邮件的正文。
所以问题是,如何使用.net和SmptClient将RichTextBox.Document作为我的电子邮件正文发送?
文档本身将包含与图标相关联的图像,文本和一些链接。
答案 0 :(得分:2)
尝试创建MailMessage
类型的对象:
var msg = new MailMessage(...);
然后你可以设置这个属性:
msg.IsBodyHtml = true;
并且邮件正文将以HTML格式呈现。
我不完全确定RichTextBox会传递HTML或者可能是稍微不同的RTF,在将内容分配给msg.Body
之前,您应该使用帮助方法将RTF转换为HTML。