我有两种发送电子邮件的方式。一个“静默”发送电子邮件,速度快如闪电,另一个比西伯利亚糖蜜慢。不过,我们需要后者,因为我们希望允许用户添加和/或编辑内容、收件人等。
这是快速但现在已过时的方法:
public static void SendEmail(String Recipients,
String Sender,
String Subject,
String Body,
String SMTPHost)
{
try
{
var message = new MailMessage();
string[] recipients = Recipients.Split(';');
foreach (string recipient in recipients)
{
message.To.Add(recipient);
}
message.Subject = Subject;
message.From = new MailAddress(Sender);
message.Body = Body;
if (String.IsNullOrWhiteSpace(SMTPHost))
{
SMTPHost = "localhost";
}
var smtp = new SmtpClient(SMTPHost);
smtp.Send(message);
} catch (Exception e)
{
log.Error(e, e);
}
}
...这是新的但缓慢的方法:
public static void SendEmail(String Recipients,
String Subject,
String Body)
{
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = string.Format("mailto:{0}?subject={1}&body={2}", Recipients, Subject, Body);
proc.Start();
}
有没有办法加快调用默认电子邮件客户端(在我们的例子中是 Outlook)的后一种方式?