2013-02-16 109 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