我正在做一个房产列表网站,现在正在为每个房产准备一份联系表格。
由于我的客户还使用了解析来自专用邮箱的电子邮件的票务系统,因此需要我将联系表单配置为通过电子邮件发送到专用邮箱,以便系统将其提取。我正在使用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);
}
答案 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)
知道有两种方法。哪个不会影响任何现有的流程, 试试这个
你可以随时改变它们。不改变C#源代码。