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 ファイル

ソースプログラム

謝辞

このプログラムの作成に、次のサイトの情報を活用させていただきました。