2013-02-16 111 views
0

我有波紋管的代碼,無法發送電子郵件到任何電子郵件地址總是會返回此錯誤結果此代碼工作之前,當我們更改Web服務器時停止工作我需要安裝任何額外的軟件。在asp .net上的SMTP電子郵件

public bool sendEmail(string to,string from,string message,string subject,string reply_to,string cc) 
    { 
     MailMessage msgMail = new MailMessage(); 
     SmtpClient smtpClient = new SmtpClient(); 
     MailAddress mAdd = new MailAddress(from); 
     MailAddress mAddTo = new MailAddress(to); 
     System.Net.NetworkCredential nc = new System.Net.NetworkCredential(); 
     nc.UserName = System.Configuration.ConfigurationManager.AppSettings["MailServerID"].ToString(); 
     nc.Password = System.Configuration.ConfigurationManager.AppSettings["MailServerPASS"].ToString();  
     if (reply_to != "") 
     { 
      MailAddress mAddRTo = new MailAddress(reply_to); 
      msgMail.ReplyTo = mAddRTo; 
     } 
     if(cc!="") 
      msgMail.CC.Add(cc); 

     // msgMail.Headers.Add("Date ", DateTime.Now.ToString()); 
     msgMail.To.Add(mAddTo); 
     msgMail.From = mAdd; 
     msgMail.Subject = subject; 

     msgMail.IsBodyHtml = true; 
     msgMail.Body =message; 

     smtpClient.Host = System.Configuration.ConfigurationManager.AppSettings["MailServer"].ToString(); 
     smtpClient.Credentials = nc; 
     try 
     { 
      smtpClient.Send(msgMail); 
      return true; 
     } 
     catch (Exception e) 
     { 
      return false; 
     } 
    } 

我的web.config smtp配置;

<appSettings> 
    <add key="MailServer" value="smtp.gmail.com"/> 
    <add key="MailServerID" value="[email protected]"/> 
    <add key="MailServerPASS" value="XXXXXXX"/> 
</appSettings> 
+0

什麼異常/的InnerException您收到? – NaveenBhat 2013-02-16 13:09:38

+1

Gmail默認使用SSL。添加這個'smtpClient.EnableSsl = true;' – ebattulga 2013-02-16 13:11:57

+0

我已經在我的文件中進行了這些更改,仍然沒有收到電子郵件。 – 2013-02-16 13:22:56

回答

0

我看到您使用的是Gmail的smtp服務。
此服務需要身份驗證,啓用SSL和特定的端口。
添加這些行

smtpClient.EnableSsl = true; 
smtpClient.Port = 587; 

不過我是從你的句子有點困惑。

停止工作,當我們改變Web服務器

您的代碼應該從來沒有工作過

+0

'當我們更改Web服務器時停止工作'我更改了我的託管服務器,並在我的新服務器中面對此問題。 我在文件中進行了這些更改,仍然沒有收到電子郵件。 – 2013-02-16 13:22:35

+0

然後,你應該問他們(託管服務提供商管理員)是否有一個塊發送電子郵件。但是,我確信上述兩行是必需的smtp.gmail.com – Steve 2013-02-16 13:27:03

+0

@HuzoorBux **中等信任**是共享環境中ASP.Net的常用設置。如果是這樣,你可以**只使用端口25 ** SMTP。所以如果你改變服務器,這是你需要問你的託管服務提供商。如果你在共享服務器上,這很可能。 – EdSF 2013-02-16 22:46:55