2016-04-03 9 views
0

これは数日前に作業していますが、エラーが出ることはありませんが、電子メールは送信されません。どれか)。 (メールが送信されたというメッセージが私の連絡フォームに表示されます)電子メールの連絡フォームを送信するC#asp.net Visual Studio 2012

asp.netで連絡先フォームを作成しました。ローカルホストでc#-itが実行されていますが、メールを送信します。私のGmailやOutlookのアカウントに。

質問は...私のコードで何が間違っていますか?助言がありますか?

事前にお手数をおかけしていただきありがとうございます。

protected void BtnSubmit_Click1(object sender, EventArgs e) 
    { 
     if (IsValid) //if all boxes are filled in... 
     { 
      try 
      { 
       MailMessage mailMessage = new MailMessage(); 
       MailAddress fromAddress = new MailAddress(txtbxEmailAddress.Text); //sender email address 
       mailMessage.From = fromAddress; 
       mailMessage.To.Add("[email protected]"); //receiver email address    
       mailMessage.Body = txtRequest.Text; 
       mailMessage.IsBodyHtml = true; 
       mailMessage.Subject = " Contact Us"; 

       SmtpClient smtpClient = new SmtpClient(); 
       smtpClient.Host = "smtp.gmail.com"; 
       smtpClient.Port = 587; 
       smtpClient.EnableSsl = true; 
       smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; 
       smtpClient.Credentials = new System.Net.NetworkCredential("[email protected]", "mypassword"); 
       smtpClient.Send(mailMessage); 
      } 
      catch (Exception) 
      { 
       lblMailmsg.Text = String.Format("Error sending email"); 
      } 

      lblMailmsg.Text = String.Format("Your Message has been sent. We will be in contact with you as soon as possible."); //msg show when mail is sent 

      //clear contact form 
      txtbxfname.Text = ""; 
      txtbxLName.Text = ""; 
      txtbxEmailAddress.Text = ""; 
      txtRequest.Text = ""; 
     } 
     } 
}  



    } 

答えて

0

私はあなたのコードは、この行であるか見て最大の問題:ここでは

はコードです。

mailMessage.From = fromAddress; 

これにより、SPFが破損し、DMARCが異常終了し、一部の人からメッセージが届かなくなります。あなたはここでその詳細を読むことができ

"DMARC - Contact Form Nightmare"

を提案した回避策が行うことになります。

mailMessage.From = "[email protected]" 
mailMessage.Subject = " Contact Us" + fromAddress; 

この方法 - あなたは記事の問題の概要を避けます。

+0

はい!私はそれを以下に変更しました: mailMessage.From = new MailAddress( "[email protected]"); mailMessage.Subject = "お問い合わせ" + fromAddress; 私は自分のGmailにメールを受け取ります。 :) 問題は私がgmailでメールを受信したときに、連絡フォームでユーザが入力したemailaddressからではなく、私からのものであるということです。 どうすれば変更できますか?私は今どこに問題があるかを知ってくれてありがとうございます:) – Milo

+0

あなたはそれを変更することはできません。それは問題全体です。それはあなたの側でもう少し作業をして顧客に対応するつもりです。しかし、少なくともあなたは顧客からの返信メールを受け取るでしょう。 – Henry

+0

OKありがとう。私はそれを変えることも望んでいましたが、できないことは残念です。(しかし、あなたは正しいです、少なくとも私はメールを受け取りました!:)もう一度ありがとう! – Milo