Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

送信処理

メール送信処理は、.NETの標準的なAPIを使用して処理可能である。

System.Net.Mail.MailMessage?, SmtpClient?

// messageオブジェクトを生成
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();

// 送信者を設定
message.From = new System.Net.Mail.MailAddress("xxxxx@yyyyy.co.jp", "西野 大介");
message.Sender = new System.Net.Mail.MailAddress("xxxxx@yyyyy.co.jp", "西野 大介");

// 件名を設定
message.SubjectEncoding = Encoding.GetEncoding("UTF-8"); 
message.Subject = "テスト メール";

// メッセージボディを設定
message.BodyEncoding = Encoding.GetEncoding("UTF-8");
message.Body = "本文\r\n本文\r\n本文\r\n本文\r\n本文\r\n本文\r\n本文\r\n本文\r\n本文\r\n本文\r\n本文\r\n";

// 添付ファイルを設定 --------------------------------------------------
message.Attachments.Add(
  new System.Net.Mail.Attachment(@"C:\新規テキスト ドキュメント.txt",
  new System.Net.Mime.ContentType("test/plain; charset=UTF-8")));

message.Attachments.Add(
  new System.Net.Mail.Attachment(@"C:\新規Microsoft Word 文書.doc",
  new System.Net.Mime.ContentType("test/plain; charset=UTF-8")));

message.Attachments.Add(
  new System.Net.Mail.Attachment(@"C:\新規ビットマップ イメージ.bmp",
  new System.Net.Mime.ContentType("test/plain; charset=UTF-8")));

// ---------------------------------------------------------------------

// addressコレクションオブジェクトを生成 -------------------------------
message.To.Add("xxxxx@yyyyy.co.jp");
message.CC.Add("xxxxx@yyyyy.co.jp");
message.Bcc.Add("xxxxx@yyyyy.co.jp");

// ---------------------------------------------------------------------

// その他、オプション --------------------------------------------------

// 優先度
message.Priority = System.Net.Mail.MailPriority.Normal;

// フォーマット
message.IsBodyHtml = false;

// 送信失敗時、レスを受信するかどうか
message.DeliveryNotificationOptions
  = System.Net.Mail.DeliveryNotificationOptions.OnSuccess;

// ---------------------------------------------------------------------

// SmtpClientオブジェクトを作成
System.Net.Mail.SmtpClient client
  = new System.Net.Mail.SmtpClient("xxx.xxx.xxx.xxx");

// ネットワーク経由
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;

// タイムアウト値(ミリ秒))
client.Timeout = 5000;

// 認証(デフォルト)
client.UseDefaultCredentials = true;

//// 認証(カスタム)
//client.Credentials = new System.Net.NetworkCredential("username", "password");

// メッセージを送信
client.Send(message);

携帯メールアドレス

携帯向けにメール送信する場合は、携帯メールアドレス(RFCに準拠しないメールアドレス)に対応する必要があるか確認する。

.NETでは、RFCに準拠しないメール アドレスをMailAddress?クラスに設定すると例外となることがある(これを利用して、RFCに準拠しないメール アドレスをチェックできる)。

この場合、MailMessage?クラスのToプロパティ(MailAddressCollection?クラス)にAddすると例外としないで処理できる。

必要であるなら、携帯メールアドレス対応のコンポーネントを導入する

当該アドレスにSMTPが対応していないケースもあるようである(Exchange 2000 Server、Server 2003)

メール受信処理

  • メール受信処理は複雑なため、メール受信処理をシステム内に組み込まないようにするか、若しくは、専用の製品を使用して処理を実装する。
  • ただし、Dynamicsなどの最近のパッケージでは、メール受信処理(メールボックスの監視サービスなど)も実装している。さすがという感じ。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-08-29 (水) 12:26:06 (83d)