如何在.NET中发送SMTP电子邮件,用户

时间:2015-09-11 02:23:18

标签: vb.net email outlook

我的网站上有一个联系表格,允许用户输入他们的电子邮件地址并发送一些他们的询问。

我使用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将在“收件人”字段中打开带有查询者电子邮件地址的新邮件。

1 个答案:

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

MSDN Reference

编辑:我之前的回答建议使用ReplyTo属性,现在是obsolete。请改用ReplyToList