麻烦发送电子邮件到Office 365
问题描述:
我们正在从一个私人的Exchange服务器移动到Office 365之前,下面的代码工作:麻烦发送电子邮件到Office 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,我只是得到一个超时。我无法telnet到端口587(telnet smtp.office365.com 587)。我自己的Outlook客户端设置为https(端口443),我可以telnet到该端口 - 但我的代码只是返回“SMTP服务器返回无效响应”。下面是一些示例代码,我已经试过:随后的任意组合
SmtpClient smtp = new SmtpClient("smtp.office365.com");
smtp.Port = 443;
:其次smtp.Send(电子邮件)
smtp.UseDefaultCredentials = false;
smtp.Credentials = new System.Net.NetworkCredential("ID", "password");
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.EnableSsl = true;
smtp.TargetName = "STARTTLS/smtp.office365.com";
;
答
检查防火墙可能会阻塞端口。
防火墙端口是否打开? –
啊哈 - 你明白了!谢谢Widi。 –
顺便说一句 - 我意识到我应该检查这一点 - 但管理我们的电子邮件的公司告诉我,端口587会好的。呃,好吧... –