- 追加された行はこの色です。
- 削除された行はこの色です。
「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-[[戻る>アプリケーション設計のポイント]]
*目次 [#ad818906]
#contents
*概要 [#fc9651f8]
メール送受信処理について
*送信処理 [#j68d2367]
メール送信処理は、.NETの標準的なAPIを使用して処理可能である。
*参考 [#b26309bd]
-メール - マイクロソフト系技術情報 Wiki~
https://techinfoofmicrosofttech.osscons.jp/index.php?%E3%83%A1%E3%83%BC%E3%83%AB
**System.Net.Mail.MailMessage, SmtpClient [#yb03c7bc]
// 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);
**携帯メールアドレス [#b8bb2d7b]
携帯向けにメール送信する場合は、携帯メールアドレス(RFCに準拠しないメールアドレス)に対応する必要があるか確認する。
.NETでは、RFCに準拠しないメール アドレスをMailAddressクラスに設定すると例外となることがある(これを利用して、RFCに準拠しないメール アドレスをチェックできる)。
この場合、MailMessageクラスのToプロパティ(MailAddressCollectionクラス)にAddすると例外としないで処理できる。
必要であるなら、携帯メールアドレス対応のコンポーネントを導入する
-(.NET用SMTP/POPクラスライブラリ)~
http://www.agile-tech.com/product/maillib.aspx
当該アドレスにSMTPが対応していないケースもあるようである(Exchange 2000 Server、Server 2003)
-@ の直前にピリオドがあるなどの RFC に準拠していないアドレスを含むメッセージを送受信できない~
http://support.microsoft.com/kb/281538/ja
**メール受信処理 [#j27e1c8e]
-メール受信処理は複雑なため、メール受信処理をシステム内に組み込まないようにするか、若しくは、専用の製品を使用して処理を実装する。
-ただし、Dynamicsなどのパッケージでは、[[メール受信処理(メールボックスの監視サービスなど)>http://techinfoofmicrosofttech.osscons.jp/index.php?CRM%E3%81%AE%E9%9B%BB%E5%AD%90%E3%83%A1%E3%83%BC%E3%83%AB%E3%81%AE%E7%AE%A1%E7%90%86]]も実装している。