0

どのメールアドレスにもメールを送信できない次のコードがあります。このコードは以前は機能していたという誤った結果を返し、Web サーバーを変更すると動作を停止します。追加のソフトウェアをインストールする必要がありますか?

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="abcd@gmail.com"/>
    <add key="MailServerPASS" value="XXXXXXX"/>
</appSettings>
4

1 に答える 1

0

gmail の smtp サービスを使用しているようです。
このサービスには、認証、有効な SSL、および特定のポートが必要です。
これらの行を追加します

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

しかし、私はあなたの文に少し困惑しています。

Webサーバーを変更すると動作しなくなります

あなたのコードは決して機能するべきではありませんでした

于 2013-02-16T13:14:35.993 に答える