2009-01-30 58 views
0

好吧,我一直在使用以下腳本超過一年,現在從我的主機發送電子郵件(通過gmail),它工作得很好(Settings.Get()剛剛返回字符串):錯誤:服務器不支持安全連接

public class Email : SmtpClient 
{ 
    public MailMessage Message { get; private set; } 

    public Email(string to, string from, string subject, string body) : base(Settings.Get("smtp"), 25) 
    { 
     this.EnableSsl = Convert.ToBoolean(Settings.Get("ssl")); 
     if(this.EnableSsl) 
      this.Credentials = new System.Net.NetworkCredential(Settings.Get("gm"), Settings.Get("gmp")); 
     this.Message = new MailMessage(from, to, subject, body); 
    } 

    public void Send() 
    { 
     try { this.Send(Message); } 
     catch (Exception ex) { throw ex; } 
    } 
} 

但是,從昨天起,我已經收到此錯誤:

錯誤:服務器不支持安全連接。

當然,我的主人認爲這不是他們的錯,但我沒有改變任何事情。此外,它在我的本地和測試機器上仍能正常工作。任何想法可能導致這個,所以我可以告訴他們修復它?

謝謝......這讓我瘋狂!

+0

什麼是設置?當這些類已採取了?編譯器無法識別這個 – Nurlan 2012-08-20 19:08:12

回答

4

什麼SMTP的東西正在添加怪異您正在使用服務器和端口?如果您直接連接到smtp.gmail.com發送ssl郵件,則需要使用端口465或587。

它看起來像你使用的端口25,你確定你的Settings.Get("ssl")返回false?

Read here for details.

+0

非常奇怪,我已經使用了25年的端口至少2年,直到昨天從未給我一個問題...(我切換到587) – naspinski 2009-01-30 19:42:07

+1

什麼是設置?這些類已被採取?編譯器無法確認這 – Nurlan 2012-08-20 19:04:37

0

檢查您的事件日誌,也許握手beetwen在您的PC和服務器不working.or證書不被下載或者它可能包含錯誤至極可能是從Gmail

0

指定要使用的端口587,也解決了這個問題對我來說 -

錯誤:服務器不支持安全連接。

我工作的公司創建了一個windows服務,它執行一些操作,然後從gmail發送一封電子郵件。一開始,它發送的電子郵件沒問題。在Vista機器上安裝服務後,我們發現它不會發送電子郵件。然後,一旦我們將它安裝在Windows 2008服務器上,也是如此。我們甚至開始注意到它只有少量的XP機器。一旦我們將端口更改爲587,它又開始正常工作併發送電子郵件。

下面是一些已在我們嘗試過的所有機器上運行過的示例代碼(XP,Vista,Server 2008)。

 Dim client As New Net.Mail.SmtpClient("smtp.gmail.com") 
     client.Port = 587 
     client.EnableSsl = True 
     client.UseDefaultCredentials = False 
     client.Credentials = loginInfo 
     client.Send(mm) 
0
SmtpServer.Port = 587; 
SmtpServer.UseDefaultCredentials = false; 
SmtpServer.Credentials = new System.Net.NetworkCredential("[email protected]", "password"); 
SmtpServer.EnableSsl = true;