"5.7.1 Ошибка клиента при ошибке отправки сообщения с кодом

Итак, у меня есть эта очень простая программа, которая пытается отправить электронное письмо, но я продолжаю получать

Почтовый ящик недоступен. Ответ сервера: 5.7.1 Клиент не имеют разрешения на отправку в качестве этого отправителя

Вот моя программа

static void Main(string[] args)
{
    SmtpClient client = new SmtpClient("Server", 25);
    client.UseDefaultCredentials = false;
    client.DeliveryMethod = SmtpDeliveryMethod.Network;
    client.Credentials = new NetworkCredential("UserName", "Password");
    client.Send(new MailMessage("[email protected]","Recipient"));
}

Я знаю, что учетные данные работают, если я запускаю SMTP Test Tool 3.0 с одинаковыми данными, все работает отлично.

enter image description here

Вот несколько снимков экрана на соединителе приема, настроенном для моего IP-адреса на сервере обмена.

enter image description here

enter image description here

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

Ответ 1

Я нашел проблему, мне нужно было установить флажок "Принять любого отправителя" для аутентифицированных пользователей.

enter image description here

Дополнительная информация здесь: http://technet.microsoft.com/en-us/library/aa997170(EXCHG.140).aspx

Ответ 2

Я знаю, что эта ветка довольно старая, но у меня такая же проблема, и я долго царапал себе голову. В моем случае почтовый сервер не принимал "чужой" отправитель, поэтому, например, если вы находитесь в домене @sample.com, возможно, невозможно отправить почту с "[email protected]", потому что сервер отклонит это с помощью Ошибка 5.7.1. Итак, здесь важны 2 вещи: 1) Исправить учетные данные, которые будут использоваться для подключения к серверу; 2) Значение поля "От", так как ваш сервер может отклонять письма от отправителя, принадлежащего другому домену. Другими словами, если вы находитесь в домене @sample.com, попробуйте добавить это, а также новый MailMessage {From = "[email protected]" }.

Ответ 3

У меня была та же проблема. Я тестировал настройки SMTP в отдельном консольном приложении, и он работал нормально. После некоторого поиска в Google я понял, что моя проблема заключается в том, что я дважды указывал адрес от одного раза в моей конфигурации:

<smtp deliveryMethod="Network" from="[email protected]">

А также в моем коде:

mail.From = new MailAddress("[email protected]");

Удаление адреса из кода устраняет проблему.

Ответ 4

Я думаю, вы должны установить UseDefaultCredentials в true: см. код powershell

#SMTP server name
$smtpServer = "abcd.com.au"

#Creating a Mail object
$msg = new-object Net.Mail.MailMessage

#Creating SMTP server object
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtp.UseDefaultCredentials = $true