The project of U-WA-
http://uwa.potetihouse.com/
戻る
TKMP.DLL   プログラミングTips

通信を暗号化する(送信編)

.NET Framework 2.0専用
 メール送信時にSMTP over SSL/TLSを使用するのも受信処理の「通信を暗号化する」と同様の手順で行うことが可能です。受信時と送信時で異なるのはSMTP over SSLが使用する標準的なポート番号が465なっていることだけで、Connectメソッドの前にAuthenticationProtocolプロパティで使用する暗号化方式を指定する点や、証明書の検証に問題があった場合の処理などは同じ手順になります。
C#.NET
public void Send()
{
    //送信メールの作成クラスを定義
    TKMP.Writer.MailWriter writer = new TKMP.Writer.MailWriter();

    //メールの実際の差出人
    writer.FromAddress = "from@mail.example.jp";
    //メールヘッダの差出人情報
    writer.Headers.Add("From", "差出人名 <from@mail.example.jp>");

    //メールの実際の宛先
    writer.ToAddressList.Add("to@mail.example.jp");
    //メールヘッダの宛先情報       
    writer.Headers.Add("To", "宛先人名 <to@mail.example.jp>");

    //件名
    writer.Headers.Add("Subject", "送信メールテスト");
    //本文
    writer.MainPart = new TKMP.Writer.TextPart("テストメールです。");

    //メールの送信先サーバー名
    string smtpserver = "mail.example.jp";
    int port = 465;

    //SMTPへの接続クラスを作成
    TKMP.Net.SmtpClient smtp = new TKMP.Net.SmtpClient(smtpserver, port);

    //SSLを使用します
    smtp.AuthenticationProtocol = TKMP.Net.AuthenticationProtocols.SSL ;
    //証明書に問題があった場合に独自の処理を追加します
    smtp.CertificateValidation += new TKMP.Net.CertificateValidationHandler(smtp_CertificateValidation);

    //サーバーへ接続
    if (!smtp.Connect())
    {
        System.Windows.Forms.MessageBox.Show("接続失敗");
        return;
    }
    //メール送信
    smtp.SendMail(writer);
    //サーバーから切断
    smtp.Close();
}
private void smtp_CertificateValidation(object sender, TKMP.Net.CertificateValidationArgs e)
{
    //全ての証明書を信用します
    e.Cancel = false;
}
VB.NET
Public Sub Send()
    '送信メールの作成クラスを定義
    Dim writer As New TKMP.Writer.MailWriter()

    'メールの実際の差出人
    writer.FromAddress = "from@mail.example.jp"
    'メールヘッダの差出人情報
    writer.Headers.Add("From", "差出人名 <from@mail.example.jp>")

    'メールの実際の宛先
    writer.ToAddressList.Add("to@mail.example.jp")
    'メールヘッダの宛先情報       
    writer.Headers.Add("To", "宛先人名 <to@mail.example.jp>")

    '件名
    writer.Headers.Add("Subject", "送信メールテスト")
    '本文
    writer.MainPart = New TKMP.Writer.TextPart("テストメールです。")

    'メールの送信先サーバー名
    Dim smtpserver As String = "mail.example.jp"
    Dim port As Integer = 465

    'SMTPへの接続クラスを作成
    Dim smtp As New TKMP.Net.SmtpClient(smtpserver, port)

    'SSLを使用します
    smtp.AuthenticationProtocol = TKMP.Net.AuthenticationProtocols.SSL
    '証明書に問題があった場合に独自の処理を追加します
    AddHandler smtp.CertificateValidation, AddressOf smtp_CertificateValidation

    'サーバーへ接続
    If Not smtp.Connect() Then
        System.Windows.Forms.MessageBox.Show("接続失敗")
        Return
    End If
    'メール送信
    smtp.SendMail(writer)
    'サーバーから切断
    smtp.Close()
End Sub
Private Sub smtp_CertificateValidation(ByVal sender As Object, ByVal e As TKMP.Net.CertificateValidationArgs)
    '全ての証明書を信用します
    e.Cancel = False
End Sub
VB.NETのコードはC#.NETを元に「C#.NET to VB.NET Translator」によって作成したものです

トップページへ移動
The project of U-WA-
http://uwa.potetihouse.com/