2016-04-03 37 views
0

我在這幾天工作,雖然它不會給我一個錯誤,它也不會發送電子郵件(我沒有收到任何)。 (電子郵件發送的消息將顯示在我的聯繫表格上...)發送電子郵件聯繫表格c#asp.net visual studio 2012

我在asp.net c#中創建了一個聯繫表單 - 它在本地主機上運行,​​但我想發送一封電子郵件到我的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

是的!謝謝你soo :)我將它改爲: mailMessage.From = new MailAddress(「[email protected]」); mailMessage.Subject =「聯繫我們」+ fromAddress; 而我收到我的郵件中的電子郵件。 :) 現在的問題是,當我在gmail收到電子郵件時,它來自我,而不是來自用戶在聯繫表單中填寫的電子郵件地址。 我該如何改變?非常感謝您,因爲我現在知道問題出在哪裏...... :) – Milo

+0

您無法改變這一點,那就是整個問題 - 您將對此做出更多的努力來回應客戶。但至少你會從客戶那裏收到郵件回覆。 – Henry

+0

好,謝謝你。我希望改變這一點,不能做到的羞恥:(但你是對的,至少我收到了電子郵件!)再次感謝! – Milo

相關問題