c# - 尝试将 Outlook 电子邮件保存在文件夹中

标签 c# winforms outlook-2010

我有一个 WinForms 应用程序,单击按钮会自动生成如下 Outlook 邮件:

public static void CreateOutlookEmail(string pFileName, string pCaseFolder, string pEmail, string pSubject, string pMessage)
    {
        try
        {
            Outlook.Application outlookApp = new Outlook.Application();
            Outlook.MailItem mailItem = (Outlook.MailItem)outlookApp.CreateItem(Outlook.OlItemType.olMailItem);                
            mailItem.Subject = pSubject;
            mailItem.To = pEmail;
            mailItem.Body = pMessage;
            mailItem.Importance = Outlook.OlImportance.olImportanceNormal;
            mailItem.Display(false);
            string fileDetails = pCaseFolder + "\\" + pFileName + @".eml";
            mailItem.SaveAs(fileDetails);
        }
        catch (Exception eX)
        {
            throw new Exception("cDocument: Error occurred trying to Create an Outlook Email"
                                + Environment.NewLine + eX.Message);
        }
    }

该代码成功打开了一封新的 Outlook 电子邮件,并使用发送到方法中的详细信息填充它,例如邮件地址、主题和邮件正文。

此外,当我找到文件夹(作为参数发送)时,我可以看到电子邮件文档已保存。

问题是,当我从文件夹中打开电子邮件时,电子邮件文档完全是空白的 ii.e.没有电子邮件地址、主题或消息。

我做错了什么?

最佳答案

您的代码没问题。只需使用扩展名“.msg”而不是“.eml”。此外,Outlook.OlSaveAsType 下不存在 eml 格式

关于c# - 尝试将 Outlook 电子邮件保存在文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13859388/

相关文章:

c# - 通过常量而不是变量将 int 类型转换为 byte 会引发错误

c# - azure webjobs - 编写应用程序与调用 url

c# - 将 .net 项目部署到开发服务器

c# - 接管别人的代码

Heroku 日志充满了 "/autodiscover/autodiscover.xml"的 POST http 请求

c# - 通用类型转换困惑

c# - C# 中的日期格式

.net - 如何禁用 Windows 窗体 DataGridView 中单元格文本的省略号?

c# - 单击时功能区按钮不触发 onAction 设置的事件

c# - VSTO - Outlook 添加上下文菜单