我创建了一个C#应用程序,只要用户输入信息就会发送电子邮件。可以使用相同的应用程序向原始电子邮件发送回复。我的问题是Outlook没有对电子邮件进行分组,而是将每个电子邮件视为唯一的电子邮件。我已经读过可以使用Message-ID作为将电子邮件保持在一起的参考。但是,我无法找到有关如何将其应用到我的代码中的示例。
Outlook.Application olApp = new Outlook.Application();
Outlook._MailItem eMailItem = (Outlook._MailItem)(olApp.CreateItem(Outlook.OlItemType.olMailItem));
eMailItem.To = "username@domain.com";
eMailItem.Subject = pMailSubject;
eMailItem.BodyFormat = Outlook.OlBodyFormat.olFormatHTML;
eMailItem.HTMLBody = pMailBody;
是否有办法设置唯一的Message-ID,以便每当发送有关特定主题的新电子邮件时,可以使用Message-ID将所有电子邮件保存在Outlook中?
答案 0 :(得分:0)
您需要在收件箱中找到原始邮件,然后回复()。
try
{
Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application();
Outlook._NameSpace ns = app.GetNamespace("MAPI");
ns.Logon(null, null, false, false);
Outlook.MAPIFolder inboxFolder = ns.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
// loop through the folder to find the email - match on subject
for (int i=1; i <= inboxFolder.Items.Count; i++)
{
Outlook._MailItem item = (Microsoft.Office.Interop.Outlook._MailItem)inboxFolder.Items[i];
if (item.Subject == eMailItem.Subject)
{
// found original message, reply to it
Outlook._MailItem reply = item.Reply();
reply.HTMLBody = eMailItem.HTMLBody;
reply.Send();
break;
}
}
}
catch
{
}