Мы переходим от частного сервера обмена в 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 (электронная почта);
Порт брандмауэра открыт? –
Ага - у вас есть! Спасибо, Види. –
btw - Я понимаю, что должен был проверить это, но компания, которая управляет нашей электронной почтой, сказала мне, что порт 587 будет в порядке. Ах хорошо... –