2011-07-22 62 views
0

這應該很簡單,但有一些我沒有得到。用戶填寫信息並且btnClick執行代碼。聯繫表格; ASP.NET,C#

我會認爲msgToAdd是電子郵件的目的地。 (作爲我的電子郵件進行測試)

而且msgFromAdd將作爲消息來自誰,由瀏覽者輸入。 (測試我妻子的電子郵件。)

然後我把我的電子郵件/密碼的憑據。 (實際上,任何「我的」都是x公司,所以我需要在公司的電子郵件密碼中編碼: - /)

無論如何,我成功發送電子郵件到我的地址,但它說它來自我的地址和我需要它來自用戶輸入的任何地址。

我到處搜索過,但所有代碼都是一樣的,對我來說沒有意義。謝謝。

 SmtpClient smtpClient = new SmtpClient(); 

     MailMessage mailMsg = new MailMessage(); 

     MailAddress msgToAdd = new MailAddress("[email protected]"); 
     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("[email protected]", "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; 

此外,以下是否會使名稱顯示出來。仍然沒有電子郵件地址!

MailAddress msgFromAdd = new MailAddress(tbxEmailAdd.Text, "NAME"); 

我正在認真地失去它。

+0

任何人,請嗎? – VBeginner

+0

如果您不知道進入您的網站的用戶的Gmail密碼,您無法做到您想要的。 –

回答

2

我會檢查你的web.config(如果有的話)。可能有如下設置:

<system.net> 
    <mailSettings> 
     <smtp from="your address here"> 
     <network host="localhost" password="" userName=""/> 
     </smtp> 
    </mailSettings> 
</system.net> 

可能會覆蓋您的設置。

+0

謝謝。 web.config中沒有任何內容覆蓋。電子郵件通過很好。它只是不想說它是從輸入的地址發送的。 – VBeginner

0

您發送電子郵件與您的SMTP憑據,因此,「從」應該是你的電子郵件。 MailMessage中的「From」屬性只是一個可選擇的選擇,以防您使用不需要憑據的開放式smtp。

+0

謝謝。這很有道理......我想。從我搜索的所有資料中,我只能找到像這樣的憑證資料的例子。在一天結束時,我只想讓用戶輸入他們的電子郵件地址,消息和點擊發送。並且,它會轉到我的電子郵件地址,表明它來自他們,(而不是我,這是發生了什麼),所以當我回復它時,他們會發送到他們的電子郵件。 – VBeginner