Удаленный сервер SmtpClient и GoDaddy

99
11

На веб-сайте, на котором я работал, мне просто нужно отправить электронное письмо на несколько адресов, мой код отлично работает на моем локальном хосте и отправляет письма с помощью удаленного почтового сервера. Однако, когда я публикую веб-сайт на сервере, я получаю это исключение:


"Плохая последовательность команд. Ответ сервера: этот почтовый сервер требует аутентификации при попытке отправить на нелокальный адрес электронной почты. Проверьте настройки почтового клиента или обратитесь к администратору, чтобы убедиться, что домен или адрес для этого сервера."


Вот мой код:


SmtpClient client = new SmtpClient("mail.domain.com", 25);
client.Credentials = new NetworkCredential("default@domain.com", "password
client.UseDefaultCredentials = false;
MailMessage message = new MailMessage();
foreach (string address in db.Administrators.Select(e => e.Email))
message.To.Add(address);
message.From = new MailAddress(email.FromEmailAddress);
message.Subject = email.Subject;
message.Body = email.Message;
client.Send(message);

У кого-нибудь еще была эта проблема? Является ли это GoDaddy конкретным?


Спасибо,
Алекс.

спросил(а) 2021-01-25T14:48:24+03:00 4 месяца, 4 недели назад
1
Решение
146

просто используйте это


MailMessage m = new MailMessage("default@domain.com", "to", "subject", "body");
m.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient("relay-hosting.secureserver.net");
smtp.UseDefaultCredentials = true;
smtp.Send(m);

У меня была такая же проблема, с которой пару месяцев назад она работала для меня...

ответил(а) 2021-01-25T14:48:24+03:00 4 месяца, 4 недели назад
63

Хорошо, вы должны использовать сервер SMTP-ретрансляции, настроенный для вашего сервера, который будет таким URL-адресом.


* -v01.shr.prod.sin2.secureserver.net


Тогда нормальный код SmtpClient будет работать нормально.

Этот URL-адрес можно найти на странице продуктов GoDaddy.


Спасибо за все ответы,
Алекс.

ответил(а) 2021-01-25T14:48:24+03:00 4 месяца, 4 недели назад
45

Попробуйте поставить client.UseDefaultCredentials = false; перед объявлением client.Credentials = new NetworkCredential("default@domain.com", "password)

ответил(а) 2021-01-25T14:48:24+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема