SmtpClient
クラスを用いて、メールを送信するプログラムがあるのだが、
どうもgmailをホストに指定した場合に動作しない。
設定値は以下の通り。
1 |
最初は何かしら設定が間違っているのだろうと思ったが、
下記のVBScriptでは問題なく送信ができる。
なので、設定値に間違いはなく、C#コードのコーディングミスと判断し、調査していた。
1 |
しかし、どうもミスらしき場所が見つからない。
エラーも「送信できませんでした」以上のことがでず、八方ふさがりとなった。
色々調べて、以下で解決した。
・ポートを465でなく587を用いる。
つまり、18行目あたりを以下のように修正し、問題は解消した。
1 |
どうやらこれは.NETの仕様で、
SmtpClient
クラスはポート465をサポートしていないのだ。
SmtpClient.EnableSsl プロパティ
How can I send emails through SSL SMTP with the .NET Framework?
言われれば「なんだぁ」だが、VBScriptで送信できたことで、設定値を疑うことが遅れてしまった。
こういうことがあるから、MSDNはよく確認しなくては。