2

SMTPサーバーを介して電子メールを送信したいのですが、組み込みSmtpClientクラスは電子メールヘッダーをあまり制御できないため、使用したくありません。

.NETでSMTPメールを送信する例を見つけました。これは、基本的に次のようになります。

string server = "smtp.server.com";
int port = 25;

IPHostEntry host = Dns.GetHostEntry(server);
IPEndPoint endPt = new IPEndPoint(host.AddressList[0], port);

using (Socket s = new Socket(endPt.AddressFamily, SocketType.Stream, ProtocolType.Tcp)) {
    s.Connect(endPt);

    Action<string> Senddata = (string msg) => {
        byte[] _msg = Encoding.ASCII.GetBytes(msg);
        s.Send(_msg, 0, _msg.Length, SocketFlags.None);
    };

    Senddata("HELO " + server);
    // Rest of email data elided
}

ただし、GmailのSMTPサーバーのように、TLSを必要とする接続ではおそらく機能しません。

STARTTLSSMTPコマンドを使用するなど、明示的なSSL接続を介してこの種の交換を行う簡単な方法はありますか?私はSSLプロトコルについてあまり知りませんし、自分の実装を書き込もうとして行き詰まりたくないのは確かです。クラスなどを使ってSslStreamデータを送信する方法があるといいのですが。

4

0 に答える 0