MailSettings を web.config に保存していますが、メッセージを送信すると、SMTP サーバーから認証を使用する必要があることが報告されます。構成ファイルにユーザー名/パスワードを入れましたが、それでも失敗します。
次のようにすればうまくいきますが、余分な手順のようです。構成ファイルから取得して、認証を自動的に使用するだけではいけませんか?
System.Configuration.Configuration config = WebConfigurationManager.OpenWebConfiguration(
HttpContext.Current.Request.ApplicationPath);
MailSettingsSectionGroup settings =
(MailSettingsSectionGroup) config.GetSectionGroup("system.net/mailSettings");
SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential(
settings.Smtp.Network.UserName, settings.Smtp.Network.Password);
Web.config
<system.net>
<mailSettings>
<smtp from="me@xyz.com" deliveryMethod="Network">
<network host="mail.xyz.com" defaultCredentials="true"
userName="me@xyzcom" password="abc123" />
</smtp>
</mailSettings>
</system.net>
System.Net.Mail.SmtpException
ストレージ割り当てを超えました。サーバーの応答は次のとおりです。smtp 認証を使用してください。http://www.myISP.com/support/smtp-authentication.aspxを参照して ください。
「ストレージ割り当ての超過」はかなり長い間私たちを混乱させましたが、現在は無視しています。重要と思われるのは「smtp認証を使用する」です。