Как отправить электронную почту с учетной записи AT & T с помощью System.Net.Mail.SmtpClient? - PullRequest
1 голос
/ 13 декабря 2010

Извиняюсь, если это должно быть на SuperUser, но это похоже на проблему с конфигурацией .NET, а не с моим провайдером.

Я пытаюсь отправить электронное письмо, используя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: Невозможно прочитать данные из транспорта.connection: Существующее соединение было принудительно закрыто удаленным хостом. "

Вот мой код:

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

var message = new MailMessage();
message.From = new MailAddress("email@bellsouth.net");
message.To.Add(new MailAddress("foo@gmail.com"));
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@bellsouth.net"
               password="password"
            />
        </smtp>
    </mailSettings>
</system.net>
</configuration>

и просто оставил код C # как:

var client = new SmtpClient();

var message = new MailMessage();
message.From = new MailAddress("email@bellsouth.net");
message.To.Add(new MailAddress("foo@gmail.com"));
message.Subject = "Subject";
message.Body = "This is the body";

client.Send(message);

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

РЕДАКТИРОВАТЬ: Gmail отключен, потому что мне нужно иметь возможность сохранять динамический адрес и gmailпринуждает отправителя к аккаунту.т.е. у меня есть домен, и мне нужно иметь возможность отправлять с @ mydomain.com.

1 Ответ

2 голосов
/ 01 апреля 2011

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

client.Port = 587;
client.EnableSsl = false;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...