2015-11-04 2 views
1

Мы переходим от частного сервера обмена в Office 365. Ранее следующий код работал:Trouble Отправка электронной почты в офисе 365

System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("Old Server Name"); 
smtp.Send(email); 

Из всего, что я читал, я должен быть в состоянии сделать что-то вроде следующее:

SmtpClient client = new SmtpClient(); 
    client.UseDefaultCredentials = false; 
    client.Credentials = new System.Net.NetworkCredential("your user name", "your password"); 
    client.Port = 587; // You can use Port 25 if 587 is blocked (mine is!) 
    client.Host = "smtp.office365.com"; 
    client.DeliveryMethod = SmtpDeliveryMethod.Network; 
    client.EnableSsl = true; 
    client.Send(msg); 

Однако, если я попытаюсь использовать порт 587, я просто получаю таймаут. Я не могу подключиться к порту 587 (telnet smtp.office365.com 587). Мой собственный клиент Outlook настроен для https (порт 443), и я могу подключиться к нему через telnet, но мой код просто возвращает «SMTP-сервер, вернул неверный ответ». Вот некоторые примеры кода, которые я пробовал:

SmtpClient smtp = new SmtpClient("smtp.office365.com"); 
smtp.Port = 443; 

Вслед за любой комбинации:

  smtp.UseDefaultCredentials = false; 
      smtp.Credentials = new System.Net.NetworkCredential("ID", "password"); 
      smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 
      smtp.EnableSsl = true; 
      smtp.TargetName = "STARTTLS/smtp.office365.com"; 

Вслед за smtp.Send (электронная почта);

+2

Порт брандмауэра открыт? –

+0

Ага - у вас есть! Спасибо, Види. –

+0

btw - Я понимаю, что должен был проверить это, но компания, которая управляет нашей электронной почтой, сказала мне, что порт 587 будет в порядке. Ах хорошо... –

ответ

1

Проверьте, что ваш брандмауэр может заблокировать порт.

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