这应该很简单,但有些东西我没有得到。用户填写信息,btnClick执行代码。
我认为msgToAdd将是电子邮件的目标。 (测试我的电子邮件。)
并且msgFromAdd将是消息来自的人,这是由浏览者输入的。 (测试我妻子的电子邮件。)
然后我在我的电子邮件/密码中输入凭据。 (实际上,任何“我的”都是x公司。所以我需要在公司电子邮件密码中编码?: - /)
无论如何,我成功地将电子邮件发送到我的地址,但它说它来自我的地址,我需要它来自用户输入的任何地址。
我到处搜索,但所有代码都是一样的,对我来说没有意义。感谢。
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;
此外,以下内容会显示该名称。但是仍然没有电子邮件地址!
MailAddress msgFromAdd = new MailAddress(tbxEmailAdd.Text, "NAME");
我正在失去它。
答案 0 :(得分:3)
听起来像google不会让你搞乱“来自”标题?您可能想尝试使用“发件人”属性,但并不总是在所有电子邮件客户端中呈现良好状态。
答案 1 :(得分:2)
我会检查你的web.config(如果你有的话)。可能有以下设置:
<system.net>
<mailSettings>
<smtp from="your address here">
<network host="localhost" password="" userName=""/>
</smtp>
</mailSettings>
</system.net>
可能会覆盖您的设置。
答案 2 :(得分:0)
您正在发送带有smtp凭据的电子邮件,因此“来自”应该是您的电子邮件。 MailMessage中的“From”属性只是一个可选的选择,以防您使用不需要凭证的开放smtp。