SmtpClient не аутентифицируется при расширении из web.config

При использовании параметров system.net/mail web.config для настройки моего SmtpClient , он не может доставить электронные письма с "ошибкой протокола", которая лучше всего описывается проблемами кодирования и аутентификации Base64:

Пример:
Со следующей конфигурацией

<system.net>
    <mailSettings>
        <smtp from="email@server.com">
            <network host="servermail.outsourced.com"
                     port="2525" 
                     defaultCredentials="false" 
                     userName="username" 
                     password="password"/>
        </smtp>
    </mailSettings>
</system.net>

и кодом:

var tmp = new SmtpClient();

MailMessage msg = new MailMessage();
msg.Subject = "test";
msg.From = new MailAddress("me@server.com");
msg.To.Add(new MailAddress("me@server.com"));
msg.Body = "test";
tmp.Send(msg);

выдает сообщение об ошибке:

System.Net.Mail.SmtpException: The server committed a protocol violation The server response was: UGFzc3dvcmQ6
   at System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)
   at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException
& exception)
   at System.Net.Mail.SmtpClient.Send(MailMessage message)

Однако в следующем коде, где я вручную установил все свойства, код выполняется без исключения, и электронное письмо доставляется.

var tmp2 = new SmtpClient("servermail.outsourced.com", 2525);
tmp2.Credentials = new NetworkCredential("username", "password");
tmp2.UseDefaultCredentials = false;

MailMessage msg = new MailMessage();
msg.Subject = "test";
msg.From = new MailAddress("me@server.com");
msg.To.Add(new MailAddress("me@server.com"));
msg.Body = "test";
tmp2.Send(msg);
7
задан Matt Murrell 13 January 2011 в 21:02
поделиться