在VB.Net(或C#)中,当我创建发送电子邮件的代码时,我总是将“发件人”设置为我服务器上的电子邮件,而不是该人的电子邮件填写表格。
小例子:
System.Net.Mail.MailMessage = New System.Net.Mail.MailMessage()
mailMessage.From = New System.Net.Mail.MailAddress("someone@domain.com")
mailMessage.To.Add(New System.Net.Mail.MailAddress("someone@domain.com"))
这很重要,因为大多数托管服务提供商都限制使用依赖托管环境的电子邮件发送电子邮件(我完全理解安全目的)。
以上工作非常好,但问题是当有人想要回复电子邮件时,他们实际上将回复他们自己的电子邮件地址,除非他们手动从邮件内容中复制该人的电子邮件并在回复时将其放在“To”字段中。
我想了解今天处理发送电子邮件的最佳做法。
我看到“On Behalf Of”和其他“回复”的电子邮件。
我还缺少什么吗?请指教。
答案 0 :(得分:1)
使用SMTP MailMessage,我总是使用ReplyTo,它可以工作:
rawMessage.ReplyTo = New MailAddress("someoneElse@domain.com");
但是对于Outlook Interop来说,它是OnBehalfOf ......
编辑:
当您使用vs2010时,ReplyTo已过时,可能会使用ReplyToList:
rawMessage.ReplyToList.Add("someoneElse@domain.com");
编辑:
抱歉,我误解了原来的问题 - 实际上它正在寻找两者之间的区别:OnBehalfOf和ReplyTo,
据我所知,在MailMessage对象中,如果您使用不同于From地址的其他电子邮件地址设置Sender,则客户端(例如outlook)将显示“On Behalf Of”。
但是如果你设置了ReplyTo,那么客户端就不会显示,如果用户点击了Reply / ReplyAll
,它会自动填充To字段。这实际上取决于您决定使用哪一个的需求。