如何使用预填充的附件打开 Outlook 新邮件窗口

Posted

技术标签:

【中文标题】如何使用预填充的附件打开 Outlook 新邮件窗口【英文标题】:How to open Outlook's new mail window with prepopulated attachment 【发布时间】:2012-09-03 23:48:31 【问题描述】:

当用户单击我的应用程序中的某个按钮或链接时,我需要打开一个带有预填充附件的新电子邮件窗口。

【问题讨论】:

What have you tried? 【参考方案1】:

您可以使用 Outlook 的互操作服务来做到这一点

using Outlook = Microsoft.Office.Interop.Outlook;

 Outlook.MailItem mail = Application.CreateItem(
        Outlook.OlItemType.olMailItem) as Outlook.MailItem;
    mail.Subject = "Quarterly Sales Report FY06 Q4";
    Outlook.AddressEntry currentUser =
        Application.Session.CurrentUser.AddressEntry;
    if (currentUser.Type == "EX")
    
        Outlook.ExchangeUser manager =
            currentUser.GetExchangeUser().GetExchangeUserManager();
        // Add recipient using display name, alias, or smtp address
        mail.Recipients.Add(manager.PrimarySmtpAddress);
        mail.Recipients.ResolveAll();
        mail.Attachments.Add(@"c:\sales reports\fy06q4.xlsx",
            Outlook.OlAttachmentType.olByValue, Type.Missing,
            Type.Missing);
        mail.Send();
    

可以找到工作示例here..

【讨论】:

所以看起来它使用 Outlook 实际在后台发送邮件。问题是询问如何实际打开带有附件的新消息窗口,让我可以选择在发送之前添加到电子邮件中。 终于有人和我有同样的担心了。我从 GridView 创建了临时 excel。我只想打开一个附有 excel 的新 Outlook 消息,然后让用户按发送。【参考方案2】:

老问题,但我也遇到了这个问题,所以这里有一个复制和粘贴解决方案:

Microsoft.Office.Interop.Outlook.Application oApp = new Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.MailItem oMsg = (Microsoft.Office.Interop.Outlook.MailItem)oApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);

oMsg.Subject = "subject something";
oMsg.BodyFormat = Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormathtml;
oMsg.HTMLBody = "text body"; //Here comes your body;
oMsg.Attachments.Add("c:/temp/test.txt", Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, Type.Missing, Type.Missing);
oMsg.Display(false); //In order to display it in modal inspector change the argument to true

您需要在项目中添加对Microsoft.Office.Interop.Outlook 组件的引用。

【讨论】:

我认为这个答案应该被标记为解决方案。

以上是关于如何使用预填充的附件打开 Outlook 新邮件窗口的主要内容,如果未能解决你的问题,请参考以下文章

outlook 邮箱收的邮件在那放着(附件在哪)

如何解除 outlook 2016 附件大小的限制

OUTLOOK VBA 收到新邮件后自动保存包含特定字符的附件到指定文件夹

从 Outlook 下载附件并在 Excel 中打开

outlook2016版无法突破邮件附件大小上限

outlook打开某些带了附件和表格的邮件会重启软件?