0

我创建了以下类来打开光盘上现有的 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);
    }
}
4

1 回答 1

2

您可以使用扩展 MAPI(仅限 C++ 或 Delphi)和OpenIMsgOnIStg函数或Redemption(任何语言) - 创建RDOSession对象的实例,调用 RDOSession.GetMessageFromMsgFile(返回RDOMail对象的实例),修改它,调用 RDOMail.Save或 RDOMail.SaveAs。

于 2013-11-06T18:53:29.833 回答