使用 SmtpClient 发送邮件作为回复

2023-12-28

场景:需要发送一封邮件,该邮件实际上是来自 asp.net c# 程序的回复邮件。我设法将邮件发送给客户端,但它作为新邮件发送。

Code :

var SMTP = _genRepository.GetData("SELECT * FROM LOCATION WHERE ID='" + mail.LocationId + "'").FirstOrDefault();
SmtpClient c = new SmtpClient(SMTP.SMTP_Host, SMTP.SMTP_Port);
MailAddress add = new MailAddress(mail.From);
MailMessage msg = new MailMessage();
msg.To.Add(add);
msg.From = new MailAddress(SMTP.Email);
msg.IsBodyHtml = true;
msg.Subject = mail.Subject;
msg.Body = mail.Body;
c.Credentials = new System.Net.NetworkCredential(SMTP.Email, SMTP.EmailPassword);
c.EnableSsl = true;
c.Send(msg);

我有发件人的电子邮件 messageid。我只需要知道如何发送邮件作为回复。


如果您添加以下标头,邮件客户端会将邮件视为回复。

回复中

参考

        MailMessage mailMessage = new MailMessage();
        mailMessage.Headers.Add("In-Reply-To", "<Message-ID Value>");
        mailMessage.Headers.Add("References", "<Message-ID Value>");

我找不到 SMTP 标头的任何“官方”参考,但以下给出了一些details http://wesmorgan.blogspot.in/2012/07/understanding-email-headers-part-ii.html:

In-Reply-To 和 References 标头的存在表明该消息是对上一条消息的回复。

参考标题使“线程邮件阅读”和每次讨论存档成为可能。

此外,一些邮件客户端也想要完全相同的主题。请看这个相关SO post https://stackoverflow.com/questions/23007197/how-to-cause-sent-emails-to-appear-threaded-in-gmail-recipients-view-with-messa

在 Outlook 中,如果邮件主题相同并且为文件夹启用了“对话视图”,则无论上述标头如何,它都会将具有相同主题的所有邮件分组在一起。

您可以使用客户端手动发送回复,并将邮件标头与原始邮件进行比较,以了解客户端如何添加邮件标头。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 SmtpClient 发送邮件作为回复 的相关文章

随机推荐