.net 1.1 で、プログラム制御を使用して電子メールを送信する方法。たとえば、Web サイト ユーザーが正常に登録すると、登録ユーザーにユーザーの登録情報の入力を求める電子メールが自動的に送信されます。さらに、固定数名に毎日定期的にレポートを送信する必要がある場合もあります。まとめると、次の問題に対処する必要があります。
1. SMTP サーバーの ID 認証。
2. 宛先が複数ある場合の送信方法。
3. 電子メールの添付ファイルを送信します。
実装手順は次のとおりです。
System.Web.Mail を使用するには、名前空間で参照します。
System.Web.Mail を使用して
電子メールを送信するプロセスを定義します。
/**//// <概要>
/// 電子メールメッセージを送信する
/// 概要>
/// メールアドレスを受け取る
/// メールの件名
/// メール本文
/// 添付ファイル
public void SendMail(string to,string subject,string body,MailAttachment mailatta)
{
MailMessage m_Mail = new MailMessage();
//SMTPサーバーの名前を定義します
SmtpMail.SmtpServer = "mail.13590.com";
//ID 認証を要求するように SMTP メール サーバーを定義します
。
m_Mail.Fields.Add(" http://schemas.microsoft.com/cdo/configuration/smtpauthenticate ", "1");
//認証されたユーザー名
m_Mail.Fields.Add(" http://schemas.microsoft.com/cdo/configuration/sendusername ", "ユーザー名");
//認証パスワード
m_Mail.Fields.Add(" http://schemas.microsoft.com/cdo/configuration/sendpassword","password ");
//メール送信アドレスを定義します
。
m_Mail.From=""Qiu Yu"< [email protected] >"
//メール受信アドレスを定義します
。
m_Mail.To = to.ToString();
//メールのBCCアドレスを定義します。
m_Mail.Bcc=" [email protected] ";
//メールのカーボンコピーアドレスを定義する
m_Mail.Cc = " [email protected] ";
//メールの件名を定義します
m_Mail.Subject = 件名;
//メールの本文を定義する
m_Mail.Body = 本文;
//'メールはHTML形式で送信されます
m_Mail.BodyFormat = MailFormat.Text;
//メールの制限レベルを定義します。ここでは高に設定します
m_Mail.Priority = MailPriority.High;
// 送信したメールに添付ファイルを添付する
if (mailatta!=null)
{
m_Mail.Attachments.Add(mailatta);
}
試す
{
SmtpMail.Send(m_Mail);
}
キャッチ
{
//メール送信エラー
Memo1.Text=Memo1.Text + 件名;
}
}
電子メール アドレス「"Qiu Yu"< [email protected] >」に注意してください。
先頭は表示名で、その後に実際の電子メール アドレスが続きます。受信者アドレスが複数の場合は、次のように「;」で区切ります。
"Qiu Yu" < [email protected] >; "Administrator" < [email protected] > エスケープ文字の使用に注意してください。
プログラムを使用して呼び出します
private void button_Click(オブジェクト送信者、System.EventArgs e)
{
string MailAddr=""Qiu Yu"< [email protected]>; "Administrator"< [email protected] > ";
string Subject="統計レポートをご確認ください";
文字列 MailBody="テスト";
string PathMailAtta=@"C: Statistical Report.xls"
;
試す
{
mailatta= 新しい MailAttachment(PathMailAtta);
}
キャッチ
{
Memo1.Text=Memo1.Text+PathMailAtta+"例外が発生しました。開いているかどうかを確認してください";
戻る;
}
SendGroupMail(MailAddr,Subject,MailBody,mailatta);
}
上記のプログラムは、VS.Net2003 および Windows 2003 (SP1) プラットフォームでテストされています。