电子邮件更改来自:地址

时间:2013-02-05 10:02:33

标签: c# asp.net contact-form

我正在做一个房产列表网站,现在正在为每个房产准备一份联系表格。

由于我的客户还使用了解析来自专用邮箱的电子邮件的票务系统,因此需要我将联系表单配置为通过电子邮件发送到专用邮箱,以便系统将其提取。我正在使用ASP C#。

我需要帮助才能将联系表单中的“发件人”地址更改为表单中的发件人电子邮件地址,代码如下所示:

这是我的aspx.cs

protected void SendMail()
{
    var fromAddress = "email@domain.com";
    var toAddress = "dedicatedmailbox@domain.com";
    const string fromPassword = "password";
    string subject = PropertyNameOnContact.Text.ToString();
    string body = "Subject: Online Enquiry for " + PropertyNameOnContact.Text + "\n";
    body += "Email: " + txtemail.Text + "\n";
    body += "From: " + txtname.Text + "\n";
    body += "Preferred contact Method: \n" + PreferredContact.Text + "\n";

    var smtp = new System.Net.Mail.SmtpClient();
    {
        smtp.Host = "smtp.gmail.com";
        smtp.Port = 587;
        smtp.EnableSsl = true;
        smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
        smtp.Credentials = new System.Net.NetworkCredential(fromAddress, fromPassword);
        smtp.Timeout = 20000;
    }

    smtp.Send(fromAddress, toAddress, subject, body);
}

2 个答案:

答案 0 :(得分:2)

对于这样的联系表单,用户填写的地址绝不应该是从地址使用的地址。它应该是回复地址。这样做是为了使接收邮件服务器能够进行正确的验证。

我建议你创建一个MailMessage对象,你可以在其上设置速记SmtpClient.Send没有的所有参数。在此,您可以添加应在MailMessage.ReplyToList中回复的地址,并将地址添加为MailMessage.From

SmtpClient.Send方法也接受MailMessage对象,所以它应该相当容易。

这是MSDN上的MailMessage对象: http://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage.aspx

答案 1 :(得分:1)

知道有两种方法。哪个不会影响任何现有的流程, 试试这个

  • 从DataBase
  • 获取From Email-ID(fromAddress)
  • 在Web Config File中配置From Email_ID(fromAddress),您可以为整个应用程序访问它。

你可以随时改变它们。不改变C#源代码。