联系表; ASP.NET,C#

时间:2011-07-22 00:04:37

标签: c# asp.net

这应该很简单,但有些东西我没有得到。用户填写信息,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");

我正在失去它。

3 个答案:

答案 0 :(得分:3)

听起来像google不会让你搞乱“来自”标题?您可能想尝试使用“发件人”属性,但并不总是在所有电子邮件客户端中呈现良好状态。

MailMessage, difference between Sender and From properties

答案 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。