0

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

由于我的客户还使用了一个票务系统来解析来自专用邮箱的电子邮件,因此我需要将联系表格配置为通过电子邮件发送到专用邮箱,以便他们的系统接收它。我正在使用 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);
}
4

2 回答 2

2

对于这样的联系表格,用户填写的地址绝不应该是用作发件人地址的地址。它应该是回复地址。这样做是为了让接收邮件服务器可以进行正确的验证。

我建议您创建一个对象,您可以在其上设置速记所没有MailMessage的所有这些参数。SmtpClient.Send在那您可以添加您应该回复的地址,并将发件人地址添加MailMessage.ReplyToListMailMessage.From

SmtpClient.Send方法还接受一个MailMessage对象,因此应该相当简单。

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

于 2013-02-05T10:30:50.860 回答
1

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

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

您可以随时更改它们。无需更改 C# 源代码。

于 2013-02-05T11:08:26.463 回答