【问题标题】:How to send SMTP email in .NET where FROM address is entered by user如何在用户输入 FROM 地址的 .NET 中发送 SMTP 电子邮件
【发布时间】:2015-09-11 02:23:18
【问题描述】:

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

我正在使用 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 将打开一封新邮件,其中包含询问者的电子邮件地址在“收件人”字段中。

【问题讨论】:

    标签: vb.net email outlook


    【解决方案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

    【讨论】:

    • 在 OP 代码的上下文中构建您的建议,它将对每个人都更有用。
    猜你喜欢
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 2016-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多