Я храню свои 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».