月別アーカイブ: 2016年11月

SmtpClientをSSL有効でメール送信する場合の注意点

SmtpClientクラスを用いて、メールを送信するプログラムがあるのだが、
どうもgmailをホストに指定した場合に動作しない。
設定値は以下の通り。

最初は何かしら設定が間違っているのだろうと思ったが、
下記のVBScriptでは問題なく送信ができる。
なので、設定値に間違いはなく、C#コードのコーディングミスと判断し、調査していた。

しかし、どうもミスらしき場所が見つからない。
エラーも「送信できませんでした」以上のことがでず、八方ふさがりとなった。

色々調べて、以下で解決した。

・ポートを465でなく587を用いる。

つまり、18行目あたりを以下のように修正し、問題は解消した。

どうやらこれは.NETの仕様で、
SmtpClientクラスはポート465をサポートしていないのだ。

SmtpClient.EnableSsl プロパティ
How can I send emails through SSL SMTP with the .NET Framework?

言われれば「なんだぁ」だが、VBScriptで送信できたことで、設定値を疑うことが遅れてしまった。
こういうことがあるから、MSDNはよく確認しなくては。