メールを送る方法は2つあります。1つは電子メールを「静かに」送信し、電光石火の速さであり、もう1つはシベリアの糖蜜よりも遅い. ただし、ユーザーがコンテンツ、受信者などを追加および/または編集できるようにするため、後者が必要です。
これは簡単ですが、現在は廃止された方法です。
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) を呼び出す後者の方法を高速化する方法はありますか?