SmtpOverSsl Version 1.0.4 [2013年6月22日]
SmtpOverSsl は、SMTP サーバーへメール配送の依頼を行う DLL です。ASP.NET MVC を弄っているときに、 System.Net.Mail.SmtpClient クラスの実装が SSL を有効にすると SMTP AUTH Plain の認証が行えなかったことから作成したものです。
プログラムのソースだけ見たいという方は、blog のほうに掲載したので、そちらをご覧ください(Version 1.0.1 のソースになります)。
Version 1.0.4 では、SmtpMailMessage クラスのプロパティに「StringFrom」「StringTo」の追加を行いました。
特徴
- SMTP AUTH をサポートしています。対応する認証方式は次のものです。
- Plain
- Login
- CRAM-MD5
- SSL 接続をサポートしています(SSL を利用しない接続も行えます)。
- From, To の表示名及び Subject に非 ASCII 文字がある場合には Base64 エンコーディングを行います。
- 指定できる送信先は1件のみとなっています(ASP.NET MVC などサーバーシステムを弄るときの利用を想定しているため)。
- ファイルの添付はサポートしていません(理由は同上)。
クラス
SmtpMailMessage
名前 | 型 | 説明 |
---|---|---|
From | System.Net.Mail.MailAddress | 送信者のメールアドレス |
StringFrom | string | 送信者のメールアドレス |
To | System.Net.Mail.MailAddress | 宛先のメールアドレス |
StringTo | string | 宛先のメールアドレス |
Subject | string | メールの表題 |
Body | string | メールの本文 |
static SmtpMail
名前 | 型 | 説明 |
---|---|---|
ServerName | static string | SMTP サーバーの名前 |
ServerPort | static int | SMTP サーバーの受付ポート番号 |
MailEncoding | static string | 本文のエンコーディングに使用する IANA に登録されている名前(e.g. "ISO-2022-JP") |
AuthUserName | static string | 認証で用いるユーザー名 |
AuthPassword | static string | 認証で用いるパスワード |
AuthMethod | static Smtp.SmtpAuthMethodstring | 認証方法(None, Plain, Login, CRAM_MD5) |
EnableSsl | static bool | SMTP サーバーとの接続に SSL を使用するかどうかを指定 |
名前 | 型 | 説明 |
---|---|---|
Send(SmtpMailMessage) | static void | メールを送信する |
Smtp
名前 | 型 | 説明 |
---|---|---|
ServerName | string | SMTP サーバーの名前 |
ServerPort | int | SMTP サーバーの受付ポート番号 |
MailEncoding | string | 本文のエンコーディングに使用する IANA に登録されている名前(e.g. "ISO-2022-JP") |
AuthUserName | string | 認証で用いるユーザー名 |
AuthPassword | string | 認証で用いるパスワード |
AuthMethod | enum SmtpAuthMethodstring | 認証方法(None, Plain, Login, CRAM_MD5) |
EnableSsl | bool | SMTP サーバーとの接続に SSL を使用するかどうかを指定 |
名前 | 型 | 説明 |
---|---|---|
Send(SmtpMailMessage) | void | メールを送信する |
使用例
利用するときには、プロジェクトルートの「bin」フォルダへ SmtpOverSsl.dll を放りこんでください。WebMatrix は放りこむだけで利用することができます。Visual Web Developer 等は、「参照設定」で SmtpOverSsl.dll への参照を追加してください。
※Joomla! の Email Cloaking 機能が働くのを回避するために、メールアドレスのユーザー名部分の後ろに空白を入れてあります。
[_AppStart.cshtml]
@using MakCraft.SmtpOverSsl;
@{
SmtpMail.ServerName = "smtp.example.com";
SmtpMail.ServerPort = 465;
SmtpMail.EnableSsl = true;
SmtpMail.AuthUserName = "from @example.com";
SmtpMail.AuthPassword = "password";
SmtpMail.AuthMethod = Smtp.SmtpAuthMethod.Plain;
SmtpMail.MailEncoding = "ISO-2022-JP";
}
[ProcessRequest.cshtml]
@{
var customerName = Request["customerName"];
var customerRequest = Request["customerRequest"];
try {
var mail = new MakCraft.SmtpOverSsl.SmtpMailMessage
{
From = new System.Net.Mail.MailAddress("from @example.com", "送信者"),
To = new System.Net.Mail.MailAddress("to @example.com"),
Subject = "Help request from - " + customerName,
Body = customerRequest
};
MakCraft.SmtpOverSsl.SmtpMail.Send(mail);
}
catch (Exception ex)
{
<text>
<b>The email was <em>not</em> sent.</b>
The code in the ProcessRequest page must provide an
SMTP server name, a user name, a password, and
a "from" address.
</text>
}
}
動作環境
.NET framework Version 4 で作成しています。
使用許諾
SmtpOverSsl は、作者が自分のために作成したソフトウェアを無償公開する、フリー・ソフトウエアです。自由にご利用ください。
ソフトウエアは十分にテストをしていますが、お使いのパソコン環境やプログラムの不具合などによって、問題が生じる場合があります。それにより損害が生じても、損害に対する保証は出来かねますので、あらかじめご了承ください。
サポート
プログラムに対する要望・不具合・質問などがありましたら、メールにてお問い合わせください。ブログ等でのサポートは行っておりません。
なお、多忙のときには、返信が遅くなることがあります。また、すべての問い合わせに応じることができないかもしれません。その点は、あらかじめご了承ください。
また、要望については、もともと自分のために作成したソフトウェアという性格上、すべての要望について受け入れることは出来かねることをご了承ください(必要性を認めたり、面白そうな提案には実装を検討いたします )。
メールアドレス: このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。
ダウンロード
DLL ファイル
ソースプログラム
動作確認用のプロジェクト(SmtpTestApp)を動かす場合、ソリューションのプロパティ「シングルスタートアップ プロジェクト」の選択を「SmtpTestApp」にしてください。
謝辞
このプログラムの作成に、次のサイトの情報を活用させていただきました。