繁体   English   中英

以VB.Net / C#格式发送电子邮件

[英]Sending an email in VB.Net / C# Form

在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"))

这很重要,因为大多数托管服务提供商都限制使用依赖于托管环境之外的电子邮件来发送电子邮件(我完全理解安全目的)。

上面的方法确实很好用,但是问题是当某人想回复电子邮件时,他们实际上将在回复自己的电子邮件地址,除非他们从消息内容中手动复制该人的电子邮件并将其放入回复时在“收件人”字段中输入。

我想知道当今处理电子邮件的最佳做法是什么。

我看到一些通过“代表”收到的电子邮件和其他通过“答复”发送的电子邮件。

我还有什么想念的吗? 请指教。

使用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对象上,如果将“发件人”设置为不同于“发件人”地址的其他电子邮件地址,则客户端(例如,外观)将显示“代表”。

但是如果设置了ReplyTo,客户端将不会显示该消息,而是在用户单击Reply / ReplyAll时自动填充“收件人”字段

这实际上取决于您的需求来决定使用哪个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM