[英]Contact Form; ASP.NET, C#
這應該很簡單,但有些東西我沒有得到。 用戶填寫信息,btnClick 執行代碼。
我認為 msgToAdd 將是電子郵件的收件人。 (測試為我的 email。)
並且 msgFromAdd 將是消息來自誰,由瀏覽者輸入。 (測試為我妻子的 email。)
然后是我在電子郵件/密碼中輸入的憑據。 (實際上,任何“我的”都是 x 公司。所以我需要在公司 email 密碼中編碼?:-/)
無論如何,我成功地將 email 發送到我的地址,但它說它來自我的地址,我需要它來自用戶輸入的任何地址。
我到處搜索,但所有代碼都是相同的,對我來說毫無意義。 謝謝。
SmtpClient smtpClient = new SmtpClient();
MailMessage mailMsg = new MailMessage();
MailAddress msgToAdd = new MailAddress("myemail@gmail.com");
MailAddress msgFromAdd = new MailAddress(tbxEmailAdd.Text);
mailMsg.To.Add(msgToAdd);
mailMsg.From = msgFromAdd;
mailMsg.Subject = ddlEmail.SelectedValue;
mailMsg.IsBodyHtml = true;
mailMsg.Body = tbxEmail.Text;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.Credentials = new System.Net.NetworkCredential("myemail@gmail.com", "mypassword");
smtp.EnableSsl = true;
smtp.Port = 587;
smtp.EnableSsl = true;
smtp.Send(mailMsg);
因此,即使使用下面的矯枉過正,它仍然沒有顯示真正的發件人地址。
MailAddress msgFromAdd = new MailAddress(tbxEmailAdd.Text);
mailMsg.From = msgFromAdd;
mailMsg.ReplyToList.Add(msgFromAdd);
mailMsg.ReplyTo = msgFromAdd;
mailMsg.Sender = msgFromAdd;
此外,以下內容確實顯示了名稱。 仍然沒有 email 地址!
MailAddress msgFromAdd = new MailAddress(tbxEmailAdd.Text, "NAME");
我真的失去了它。
聽起來像谷歌不讓你搞亂“來自”header? 您可能想嘗試使用“Sender”屬性,但並不總是在所有 email 客戶端中呈現良好。
我會檢查你的 web.config (如果你有的話)。 可能有這樣的設置:
<system.net>
<mailSettings>
<smtp from="your address here">
<network host="localhost" password="" userName=""/>
</smtp>
</mailSettings>
</system.net>
這可能會覆蓋您的設置。
您將使用 smtp 憑證發送 email,因此“發件人”應該是您的 email。 MailMessage 中的“From”屬性只是一個可選選擇,以防您使用不需要憑據的開放 smtp。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.