2016-10-18 2 views
0

Когда я использую Outlook, я могу отправить тестовое письмо на мой адрес gmail, однако, когда я это делаю из консольного приложения, он вызывает: ответ сервера был: 5.7.1 Невозможно передать»Запрограммированные сообщения электронной почты «Ответ сервера: 5.7.1 Не удалось передать»

using System.Net.Mail; 
namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      MailMessage mail = new MailMessage("[email protected]", "[email protected]"); 
      SmtpClient client = new SmtpClient(); 
      client.Port = 25; 
      client.DeliveryMethod = SmtpDeliveryMethod.Network; 
      client.UseDefaultCredentials = false; 
      client.Host = "xxx.xxx.com"; 
      mail.Subject = "this is a test email."; 
      mail.Body = "this is my test email body"; 
      client.Send(mail); 
     } 
    } 
} 

Я проверил, что у меня есть правильный хост клиента через внешний вид. Я также отправил тестовое письмо мне (от xx @ mycompany до xx @ mycompany), и это сработало (хотя оно отправило его в бокс). Почему это не позволит мне отправлять исходящие письма через это консольное приложение, но я могу через один и тот же адрес в Outlook.

+0

проверить похожие вопросы: http://stackoverflow.com/questions/3165721/mailbox-unavailable-the-server-response-was-5-7-1-unable-to-relay-for-abcxyz –

+0

да я сделал , это не похоже на ту же проблему, несмотря на то же сообщение об ошибке. –

+0

im отправки в учетную запись gmail, мне не нужен локальный порт smtp-сервера? –

ответ

1

Я уверен, что если у вас есть client.UseDefaultCredentials = false;, вам нужно установить учетные данные. По крайней мере, это то, что я делаю:

client.UseDefaultCredentials = false; 

client.Credentials = new System.Net.NetworkCredential(someusername, somepassword); 

редактировать: Я должен уточнить, client.UseDefaultCredentials = false;, не обязательно означает, что вам необходимо иметь учетные данные в списке, но если вы пытаетесь отправить на внешний домен (gmail.com), то ваш SMTP-сервер, скорее всего, потребует некоторого типа SMTP Auth.

+0

Это зависит - вам необязательно предоставлять учетные данные, если SMTP принимает анонимные подключения. Кроме того, электронные письма успешно отправляются (указывая на то, что подключение к SMTP не является проблемой), а не для других доменов. Это, по-видимому, ошибка разрешений на SMTP. – user1666620

+0

Все отправленные им письма будут успешными, если они размещены на том же домене/сервере. OP пытается отправить в gmail. Бьюсь об заклад, если он удалил свои кредиты из Outlook и попытался отправить в gmail, он получит ту же ошибку. –

+0

Итак, вы согласны с этим ответом, вероятно, не поможет. – user1666620

Смежные вопросы