2010-04-01 80 views
1

我有我的代碼在這裏,它從我的家庭,我的用戶是管理員,我通過有線網絡連接到互聯網正常工作。 但是,問題是,當我從我的工作場所嘗試此代碼時,它不起作用。顯示錯誤: 「無法連接到遠程服務器」 從不同的機器在同一網絡中: 「A套接字操作試圖無法訪問網絡209.xxx.xx.52:25」不能從網絡使用C#,asp.net網站發送smtp電子郵件

我檢查與我們的網絡管理員,他向我保證,所有的郵件端口是開放的[25,110,和其他端口的Gmail]。

然後,我用管理員權限登錄,有一點改進,它沒有顯示任何錯誤,但實際的電子郵件從未收到。

請注意,該代碼是從開發環境中測試,Visual Studio 2005和2008年

任何建議將不勝感激。 在此先感謝

try 
    { 
     MailMessage mail_message = new MailMessage("[email protected]", txtToEmail.Text, txtSubject.Text, txtBody.Text); 
     SmtpClient mail_client = new SmtpClient("SMTP.y7mail.com"); 
     NetworkCredential Authentic = new NetworkCredential("[email protected]", "xxxxx"); 
     mail_client.UseDefaultCredentials = true; 
     mail_client.Credentials = Authentic; 
     mail_message.IsBodyHtml = true; 
     mail_message.Priority = MailPriority.High; 
     try 
     { 
      mail_client.Send(mail_message); 
      lblStatus.Text = "Mail Sent Successfully"; 
     } 
     catch (Exception ex) 
     { 
      System.Diagnostics.Debug.WriteLine(ex.Message); 
      lblStatus.Text = "Mail Sending Failed\r\n" + ex.Message; 
     } 
    } 
    catch (Exception ex) 
    { 
     lblStatus.Text = "Mail Sending Failed\r\n" + ex.Message; 
    } 

回答

1

下面是一些示例代碼,我和談判工作,以一個Gmail服務器

private void SendEmail(string from, string to, string subject, string body) 
    { 
     MailMessage mail = new MailMessage(new MailAddress(from), new MailAddress(to)); 

     mail.Subject = subject; 
     mail.Body = body; 

     SmtpClient smtpMail = new SmtpClient("smtp.gmail.com"); 
     smtpMail.Port = 587; 
     smtpMail.EnableSsl = true; 
     smtpMail.Credentials = new NetworkCredential("[email protected]", "xxx"); 
     // and then send the mail 
     smtpMail.Send(mail); 
    } 
+0

謝謝。它也適用於我。不僅用於Gmail,也用於y7mail!這個港口587有什麼特色嗎? – Kaysar 2010-04-03 09:09:29

+0

使其工作的主要部分代碼: MailMessage mail_message = new MailMessage(「[email protected]」,txtToEmail.Text,txtSubject.Text,txtMailBody.Text); SmtpClient mail_client =新的SmtpClient(「SMTP.y7mail.com」,587); NetworkCredential Authentic = new NetworkCredential(「[email protected]」,「xxx」); mail_client.UseDefaultCredentials = true; mail_client.Credentials = Authentic; – Kaysar 2010-04-03 09:11:04

+0

很高興解決。端口587b是使用ESMTP(RFC2476)提交電子郵件的標準端口。 – 2010-04-03 15:38:36

1

嘗試設置UseDefaultCredentials爲false。

0
private void SendEmail(string from, string to, string subject, string body) 
    { 
     MailMessage mail = new MailMessage(new MailAddress(from), new MailAddress(to)); 

     mail.Subject = subject; 
     mail.Body = body; 

     SmtpClient smtpMail = new SmtpClient("smtp.gmail.com"); 
     smtpMail.Port = 587; 
     smtpMail.EnableSsl = true; 
     smtpMail.Credentials = new NetworkCredential("[email protected]", "xxx"); 
     // and then send the mail 
     smtpMail.Send(mail); 
    } 

這是System.Exception問題的最佳答案。完全驗證,您需要在網絡憑證上提供用戶名和密碼。也嘗試將此解決方案提供給其他網站。

相關問題