1

メールを送信するオプションを提供するという点で、アプリケーションを作成しました。昨日まで正常に動作していました。しかし、今日、 「メールの送信に失敗しました。」のようなメールを送信中にエラーが発生しました。そのために、以下にコードを示します。修正するのを手伝ってください。

 protected void Button1_Click(object sender, EventArgs e)
    {
        try
        {
            if (TextBox1.Text == "")
            {

                string alertmessage = "";
                alertmessage = "Email ID. cannot be blank ";
                this.CreateMessageAlert(this, alertmessage, "alertKey");
                TextBox1.Focus();
            }
            else if (TextBox2.Text == "")
            {

                string alertmessage = "";
                alertmessage = "CC To cannot be blank ";
                this.CreateMessageAlert(this, alertmessage, "alertKey");
                TextBox2.Focus();
            }
            else if (TextBox3.Text == "")
            {

                string alertmessage = "";
                alertmessage = "Subject cannot be blank ";
                this.CreateMessageAlert(this, alertmessage, "alertKey");
                TextBox3.Focus();
            }
            else if (TextBox4.Text == "")
            {

                string alertmessage = "";
                alertmessage = "Message Body cannot be blank ";
                this.CreateMessageAlert(this, alertmessage, "alertKey");
                TextBox4.Focus();
            }
            //else if (upSignature.FileName == "")
            //{
            //    ctr = 1;
            //    string alertmessage = "";
            //    alertmessage = "Attachment  Missing...";
            //    this.CreateMessageAlert(this, alertmessage, "alertKey");
            //    upSignature.Focus();
            //}

            else
            {


                string photo = "Enquiry" + Session["MRNO"].ToString() + FileUpload1.FileName;
                string strpath = Request.MapPath("~/");
                FileUpload1.SaveAs(strpath + "/Enquiry/" + photo);


                try
                {
                    MailMessage mail = new MailMessage();
                    mail.To.Add(new MailAddress(TextBox1.Text.Trim()));
                    mail.From = new MailAddress("purchase@oeg.co.in");
                    mail.Subject = "Enquiry for MRNO " + " " + " " + Session["MRNO"].ToString() + " " + " " + "Reg.";
                    mail.CC.Add(TextBox2.Text.Trim());
                    mail.Body = TextBox4.Text.Trim();

                    mail.Attachments.Add(new Attachment(FileUpload1.PostedFile.InputStream, FileUpload1.FileName));
                    mail.Attachments.Add(new Attachment(FileUpload2.PostedFile.InputStream, FileUpload2.FileName));
                    //Attachment attach = new Attachment(strpath + "/Enquiry/" + photo);
                    //mail.Attachments.Add(attach);


                    SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);

                    smtp.EnableSsl = true;

                    smtp.UseDefaultCredentials = false;
                    smtp.Credentials = new NetworkCredential("purchase@oeg.co.in", "xxxxx");
                    //smtp.Credentials = new NetworkCredential("purchaseoeg", "xxxxx");
                    smtp.Send(mail);

                    string alertmessage = "";
                    alertmessage = "Mail Has Been Sent";
                    this.CreateMessageAlert(this, alertmessage, "alertKey");


                    //   Page.RegisterStartupScript("close", "<script language=javascript>self.close();</script>");

                }
                catch (Exception ex)
                {
                    Response.Write(ex.Message);
                }
            }
        }
        catch (Exception ex1)
        {
            Response.Write(ex1.Message);
        }

    }
4

2 に答える 2

0
public string btnSendmail( )
{
    try
    {
        //Code for send Email
        string msg = txtEmail.Text;
        MailMessage sendMailforSA = new MailMessage();
        SmtpClient smtpforSA = new SmtpClient();
        string subjectforSA = null;
        subjectforSA = "Thanks for apply";
        System.Net.NetworkCredential credforSA = new System.Net.NetworkCredential("yourGmailID@gmail.com", "password");
        sendMailforSA.To.Add("ToEmailID");

        sendMailforSA.From = new MailAddress("yourGmailID@gmail.com");
        sendMailforSA.Subject = subjectforSA.ToString();
        sendMailforSA.Body = "hiii This is Test Message";
        sendMailforSA.IsBodyHtml = false;
        smtpforSA.Host = "smtp.gmail.com";
        smtpforSA.Port = 587;
        smtpforSA.EnableSsl = true;
        smtpforSA.UseDefaultCredentials = false;
        smtpforSA.Credentials = credforSA;
        smtpforSA.Send(sendMailforSA);
        return "Email successfully sent.";
    }
    catch (Exception ex)
    {
        return  "Send Email Failed." + ex.Message;
    }
} 

また、web.config ファイルに書き込みます。

<system.net>
    <mailSettings>
        <smtp from="yourGmailID@gmail.com">
            <network host="smtp.gmail.com" port="587" userName="yourGmailID@gmail.com"    password="password" defaultCredentials="false"/>
        </smtp>
    </mailSettings>
</system.net>
于 2012-08-13T12:10:58.067 に答える
0

以前は機能していたが、現在は機能していない場合は、SMTP サーバーが原因である可能性があります。

<system.net>
  <mailSettings>
    <smtp deliveryMethod="SpecifiedPickupDirectory">
      <specifiedPickupDirectory pickupDirectoryLocation="C:\TestMailMessages\" />
    </smtp>
  </mailSettings>
</system.net>

上記のコードを App.config または Web.config に配置します。メッセージを (var smtpClient = new SmtpClient(); 経由で) 送信すると、" pickupDirectoryLocation " のディレクトリにファイルとして保存されます。

メッセージがそこに問題なく到着する場合、コードは問題ありません

次に、smtp 設定のテスト/サーバーのテストに進むことができます。これには、Telnet を使用するなど、さまざまな方法があります。

問題が断続的に発生する場合は、SMTP 送信に再試行ロジックを追加してください。

于 2012-08-13T11:47:19.037 に答える