我的网站上有一个联系表格,允许用户输入他们的电子邮件地址并发送一些他们的询问。
我使用smtp使用以下代码发送电子邮件...
Dim objMail As New System.Net.Mail.MailMessage
objMail.From = New System.Net.Mail.MailAddress("me@mydomain.com")
objMail.To.Add(New System.Net.Mail.MailAddress("me@mydomain.com"))
objMail.Subject = "Inquiry from contact page."
objMail.Body = "Message from" + txtFromAddress.Text + message
Dim SmtpMail As New System.Net.Mail.SmtpClient
SmtpMail.Host = "mail.mydomain.com"
SmtpMail.Port = 25
SmtpMail.Credentials = New System.Net.NetworkCredential("me@mydomain.com", "mypassword")
SmtpMail.Send(objMail)
这很好用。但是,一旦电子邮件到达Outlook中的收件箱,我想单击回复以向发出查询的人发回电子邮件。我知道,为了发送电子邮件,我需要网络凭证,所以我不能只是从任何电子邮件地址发送电子邮件吗? (因为开放中继和垃圾邮件等)。
那么,我如何这样做,所以当我收到电子邮件时,我可以单击“答复”,Outlook将在“收件人”字段中打开带有查询者电子邮件地址的新邮件。
答案 0 :(得分:1)
您可以使用Reply-To
标头,这样可以将任何收件人回复重定向到预设的邮件地址。
您的代码应如下所示:
Dim objMail As New System.Net.Mail.MailMessage
objMail.From = New System.Net.Mail.MailAddress("me@mydomain.com")
objMail.To.Add(New System.Net.Mail.MailAddress("me@mydomain.com"))
objMail.Subject = "Inquiry from contact page."
objMail.Body = "Message from" + txtFromAddress.Text + message
'ReplyToList usage
objMail.ReplyToList.Add("john.doe@example.com")
Dim SmtpMail As New System.Net.Mail.SmtpClient
SmtpMail.Host = "mail.mydomain.com"
SmtpMail.Port = 25
SmtpMail.Credentials = New System.Net.NetworkCredential("me@mydomain.com", "mypassword")
SmtpMail.Send(objMail)
编辑:我之前的回答建议使用ReplyTo
属性,现在是obsolete。请改用ReplyToList
。