отправить письмо C # используя SMTP-сервер с аутентификацией по паролю - PullRequest
2 голосов
/ 28 апреля 2010

У меня есть кусок кода, который отправляет электронную почту .. вот код

Это не работает для меня. Это удаленный SMTP-сервис ... и я дважды проверил, что веб-доступ к электронной почте работает нормально. Я могу войти в систему, используя графический интерфейс, получать и отправлять электронные письма.

Но когда я пытаюсь сделать это с помощью кода ... это не с сообщением ...

{System.Net.Mail.SmtpException: SMTP-сервер требует безопасного соединения или клиент не прошел проверку подлинности. Ответ сервера: 5.7.0 Команда AUTH не указана.

Может кто-нибудь посоветовать ... а также у них нет EWS, т.е. обмен веб-сервисом ./ .. это путь ..

порт 25 и нет SSL или TLS

Button b = sender as Button;
try
{
    MailMessage msg = new MailMessage(senderEmail, recieverEmail, "afdasfas", "safasfa");
    //MailMessage msg = new MailMessage(senderEmail, recieverEmail, subject, subject);
    System.Net.Mail.SmtpClient mailclient = new System.Net.Mail.SmtpClient(EmailSmtpServer, outgoingPort);
    System.Net.NetworkCredential auth = new System.Net.NetworkCredential(senderEmail, senderPassword);
    mailclient.Host = EmailSmtpServer;
    mailclient.UseDefaultCredentials = false;
    mailclient.Credentials = auth;
    mailclient.Send(msg);
    MessageBox.Show(b.Content + ":WORKED");
}
catch (Exception e4)
{
    MessageBox.Show(b.Content + ": " +e4.Message);
    MessageBox.Show(b.Content + ": " + e4.StackTrace);
}

Ответы [ 3 ]

4 голосов
/ 28 апреля 2010

Не думаю, что вы хотите установить

mailclient.UseDefaultCredentials = true;

Подробнее об этой опции здесь .


Вы также должны проверить, что вы действительно можете отправлять электронную почту через этот SMTP-сервер.

Попробуйте подключиться через telnet и авторизоваться. Существует также множество служб, которые позволят вам отправить тестовое сообщение онлайн (например, http://pingability.com/smtptest.jsp).

1 голос
/ 24 апреля 2012

System.Net.Mail.SmtpException: SMTP-сервер требует безопасного соединения или клиент не прошел проверку подлинности. Ответ сервера: 5.7.0 Команда AUTH не указана.

вы пытаетесь войти без отправки команды AUTH . Вот почему ваш веб-интерфейс, который автоматически вставляет свои собственные AUTH команды, работает, но ваше текущее клиентское приложение не получает от вас команду на ретрансляцию на сервер, но сервер требует аутентификации .

0 голосов
/ 28 апреля 2010

может быть, вам нужно добавить mailclient.EnableSsl = true;

...