我创建了以下类来打开光盘上的现有Outlook .msg文件(“模板”),更改一些属性,添加附件并将其保存回另一个位置的光盘。但是,当我打开Outlook时,除了保存位置之外,我的收件箱中还会出现一个新文件!我根本不想保存到任何Outlook文件夹,只需修改磁盘上的文件即可。如何防止它保存到我的收件箱?
public class OutlookMailManager
{
public const string OutlookExtn = ".msg";
public void GenerateMail(string toAddress, string fromAddress, string templateFile, string outputFile, string attachmentFile)
{
MailItem item = OpenMessage(templateFile);
item.To = toAddress;
item.SentOnBehalfOfName = fromAddress;
item.Attachments.Add(attachmentFile);
SaveMessage(outputFile, item);
}
private MailItem OpenMessage(string fileName)
{
var app = new Application();
return (MailItem)app.Session.OpenSharedItem(fileName);
}
private void SaveMessage(string fileName, MailItem item)
{
fileName = Path.ChangeExtension(fileName, OutlookExtn);
item.SaveAs(fileName, OlSaveAsType.olMSG);
}
}
答案 0 :(得分:2)
您可以使用扩展MAPI(仅限C ++或Delphi)和OpenIMsgOnIStg函数或Redemption(任何语言) - 创建RDOSession对象的实例,调用RDOSession.GetMessageFromMsgFile(返回RDOMail对象的一个实例,修改它,调用RDOMail.Save或RDOMail.SaveAs。