C# 使用SmtpClient发送邮件作为回复

C# 使用SmtpClient发送邮件作为回复,c#,asp.net-mvc,email,smtpclient,C#,Asp.net Mvc,Email,Smtpclient,场景:需要发送一封实际上是来自asp.net c#程序的回复邮件。我管理邮件发送到客户端,但它作为新邮件发送 代码: var SMTP = _genRepository.GetData("SELECT * FROM LOCATION WHERE ID='" + mail.LocationId + "'").FirstOrDefault(); SmtpClient c = new SmtpClient(SMTP.SMTP_Host, SMTP.SMTP_Port); MailAddress add

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

代码:

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。我只需要知道如何发送邮件作为回复。

< P>如果您添加以下邮件头,邮件客户端会考虑邮件作为回复。 答复

参考资料

MailMessage=newmailmessage();
mailMessage.Headers.Add(“在回复中,”);
mailMessage.Headers.Add(“References”,”);
我找不到SMTP头的任何“官方”参考,但以下给出了一些:

如果存在In Reply To和References标头,则表示该邮件是对以前邮件的回复

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

此外,一些邮件客户端也希望使用完全相同的主题。请看这个相关的

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


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

不确定这是否是您希望对代码执行的操作?难道你不从收件箱中设置一个自动回复吗?我正在构建一个小的web应用程序,它可以读取和发送回复。
        MailMessage mailMessage = new MailMessage();
        mailMessage.Headers.Add("In-Reply-To", "<Message-ID Value>");
        mailMessage.Headers.Add("References", "<Message-ID Value>");