我將我的MailSettings存儲在web.config中,但是當我發送郵件時,我的SMTP服務器會報告我需要使用身份驗證。我在配置文件中有我的用戶名/密碼,但仍然失敗。使用配置文件的MailSettings進行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="[email protected]" deliveryMethod="Network">
<network host="mail.xyz.com" defaultCredentials="true"
userName="[email protected]" password="abc123" />
</smtp>
</mailSettings>
</system.net>
System.Net.Mail.SmtpException
超出存儲分配。 服務器響應是:請使用smtp 身份驗證。見 http://www.myISP.com/support/smtp-authentication.aspx
的「超出存儲分配」混淆我們很長一段時間,現在我們忽略它。這是「使用smtp認證」,似乎很重要。