2010-12-12 3 views
1

Извините, если это должно быть на SuperUser, но это, похоже, проблема с конфигурацией .NET. У меня есть проблема, а не проблема с моим провайдером.Как отправить сообщение электронной почты с жилого счета AT & T с помощью System.Net.Mail.SmtpClient?

Я пытаюсь отправить электронное письмо с помощью System.Net.Mail.SmtpClient. Я нахожусь на жилой линии AT & T Uverse, поэтому исходящий порт 25 полностью заблокирован, и единственный способ отправить электронную почту - через одобренный SMTP-сервер, через порт 465, через SSL. Настройки можно найти здесь: https://www.att.com/esupport/article.jsp?sid=KB401570&ct=9000812. Когда я пытаюсь отправить электронную почту, используя то, что я предполагаю, являются правильными настройками для SmtpClient, все, что я получаю, это «System.IO.IOException: Невозможно прочитать данные из транспортного соединения: существующее соединение было принудительно закрыто удаленным хостом. "

Вот мой код:

var client = new SmtpClient(); 
client.Host = "smtp.att.yahoo.com"; 
client.Port = 465; 
client.EnableSsl = true; 
client.UseDefaultCredentials = false; 
client.Credentials = new NetworkCredential("[email protected]", "password"); 
client.DeliveryMethod = SmtpDeliveryMethod.Network; 

var message = new MailMessage(); 
message.From = new MailAddress("[email protected]"); 
message.To.Add(new MailAddress("[email protected]")); 
message.Subject = "Subject"; 
message.Body = "This is the body"; 

client.Send(message); 

Исключение происходит при вызове client.Send (сообщение). Я также попытался с помощью App.config следующим образом:

<configuration> 
<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="Network"> 
      <network 
       host="smtp.att.yahoo.com" 
       port="465" 
       defaultCredentials="false" 
       enableSsl="true" 
       userName="[email protected]" 
       password="password" 
      /> 
     </smtp> 
    </mailSettings> 
</system.net> 
</configuration> 

и просто оставленный C# код, как:

var client = new SmtpClient(); 

var message = new MailMessage(); 
message.From = new MailAddress("[email protected]"); 
message.To.Add(new MailAddress("[email protected]")); 
message.Subject = "Subject"; 
message.Body = "This is the body"; 

client.Send(message); 

Существуют ли другие параметры я должен использовать? Кто-нибудь имел успех в отправке электронной почты с .NET через smtp.att.yahoo.com? Я могу сказать, что это работает в Outlook, так что это не похоже на какой-то блок где-то.

EDIT: Gmail отсутствует, потому что мне нужно удержать динамический адрес и gmail заставляет отправителя учетной записи. т. е. у меня есть домен, и мне нужно иметь возможность отправлять с @ mydomain.com.

+0

Просто любопытно - что же AT & T предложения по электронной почте, что стоит хлопот? –

+0

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

+0

Почему бы вам просто не использовать Gmail? – SLaks

ответ

2

Я сумел отправить электронную почту через smtp.att.yahoo.com используя незащищенный порт 587:

client.Port = 587; 
client.EnableSsl = false;