The Backyard - SendMailWithDotNet Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
この記事は、「WEB+DB PRESS Vol.14」(技術評論社)に掲載していただいた記事の元原稿(必要に応じて加筆/修正/削除をしています)を公開するものです。
!メールの送信
C#のプログラムからメールを送信するには、System.Web.Mailネームスペースのオブジェクトを使用します(リスト:WebLauncher.cs:SendMailメソッド)。
リスト:WebLauncher.cs:SendMailメソッド
private void SendMail(string to, Exception e)
{
if (smtpServer != null && smtpServer != String.Empty)
{
System.Web.Mail.SmtpMail.SmtpServer = smtpServer;
}
...省略...
string temptxt = Path.ChangeExtension(tempf, ".txt");
...省略...
System.Web.Mail.MailMessage mail = new System.Web.Mail.MailMessage();
mail.Subject = "[exception]" + applicationName;
mail.To = to;
mail.Attachments.Add(new System.Web.Mail.MailAttachment(temptxt));
...省略...
System.Text.StringBuilder sb = new System.Text.StringBuilder(1000);
sb.Append(DateTime.Now);
...省略...
mail.Body = sb.ToString();
System.Web.Mail.SmtpMail.Send(mail);
...省略...
メールの送信には、SmtpMailクラスのSendスタティックメソッドを使用します。実際のメールには、MailMessageオブジェクトを作成して使用することになります。また、添付ファイルの扱いがMSDNのMailMessage#Attachmentsプロパティの説明ではわかりにくいためここで例示しましたが、MailAttachmentオブジェクトを作成して、Attachmentsプロパティで示されるIListインターフェイスに対してAddします。
なお、送信先のSMTPサーバーは、Windows XP Professionalの場合、デフォルトでIISのSMTPサーバーが利用されます。可能ならば以下の理由からそのまま利用すべきです。
*宛先のSMTPサーバーが送信時点でオフラインの場合スプールされる
*IISのインストールのみで特別な設定が不要
ただし、サーバーと異なり個々のワークステーションにSMTPサーバーを立てるのが妥当かどうかは検討の余地があります。
NetLauncherでは、上記の理由と自宅で試す場合を考えて、構成ファイルで送信先SMTPサーバーを設定可能にしてありますので、必要に応じて設定してください。なお、イントラネット上のSMTPサーバーではなく、自宅でISPのSMTPサーバーを利用してみる場合には、送信元アドレスをPCの環境変数から取得するとサードパーティリレーと見なされて拒否される可能性があるので、同様に送信元の設定も行ってください。
!メールの送信
C#のプログラムからメールを送信するには、System.Web.Mailネームスペースのオブジェクトを使用します(リスト:WebLauncher.cs:SendMailメソッド)。
リスト:WebLauncher.cs:SendMailメソッド
private void SendMail(string to, Exception e)
{
if (smtpServer != null && smtpServer != String.Empty)
{
System.Web.Mail.SmtpMail.SmtpServer = smtpServer;
}
...省略...
string temptxt = Path.ChangeExtension(tempf, ".txt");
...省略...
System.Web.Mail.MailMessage mail = new System.Web.Mail.MailMessage();
mail.Subject = "[exception]" + applicationName;
mail.To = to;
mail.Attachments.Add(new System.Web.Mail.MailAttachment(temptxt));
...省略...
System.Text.StringBuilder sb = new System.Text.StringBuilder(1000);
sb.Append(DateTime.Now);
...省略...
mail.Body = sb.ToString();
System.Web.Mail.SmtpMail.Send(mail);
...省略...
メールの送信には、SmtpMailクラスのSendスタティックメソッドを使用します。実際のメールには、MailMessageオブジェクトを作成して使用することになります。また、添付ファイルの扱いがMSDNのMailMessage#Attachmentsプロパティの説明ではわかりにくいためここで例示しましたが、MailAttachmentオブジェクトを作成して、Attachmentsプロパティで示されるIListインターフェイスに対してAddします。
なお、送信先のSMTPサーバーは、Windows XP Professionalの場合、デフォルトでIISのSMTPサーバーが利用されます。可能ならば以下の理由からそのまま利用すべきです。
*宛先のSMTPサーバーが送信時点でオフラインの場合スプールされる
*IISのインストールのみで特別な設定が不要
ただし、サーバーと異なり個々のワークステーションにSMTPサーバーを立てるのが妥当かどうかは検討の余地があります。
NetLauncherでは、上記の理由と自宅で試す場合を考えて、構成ファイルで送信先SMTPサーバーを設定可能にしてありますので、必要に応じて設定してください。なお、イントラネット上のSMTPサーバーではなく、自宅でISPのSMTPサーバーを利用してみる場合には、送信元アドレスをPCの環境変数から取得するとサードパーティリレーと見なされて拒否される可能性があるので、同様に送信元の設定も行ってください。