2015-11-04 92 views
1

我們正在從一個私人的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"; 

;

+2

防火牆端口是否打開? –

+0

啊哈 - 你明白了!謝謝Widi。 –

+0

順便說一句 - 我意識到我應該檢查這一點 - 但管理我們的電子郵件的公司告訴我,端口587會好的。呃,好吧... –

回答

1

檢查防火牆可能會阻塞端口。

相關問題