首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET在Office2010中创建带有附件的电子邮件

.NET在Office2010中创建带有附件的电子邮件
EN

Stack Overflow用户
提问于 2011-04-04 19:54:55
回答 1查看 596关注 0票数 1

我知道使用mailto链接,您可以打开defautl邮件客户端并填充主题和标题。我需要做一些类似的事情,但也附加一个文件。

我的所有用户都将使用Outlook 2010,并将其设置为默认邮件客户端。它只需要在这种情况下工作。

如何创建打开Outlook新邮件窗口并填充附件字段的电子邮件?

EN

回答 1

Stack Overflow用户

发布于 2011-04-04 20:29:19

你需要一个对Outlook COM库的引用,然后类似下面这样的东西就可以工作了:

代码语言:javascript
复制
    /// <summary>
    /// Get Application Object
    /// </summary>
    public static OL.Application Application
    {
        get
        {
            try
            {
                return Marshal.GetActiveObject("Outlook.Application") as OL.Application;
            }
            catch (COMException)
            {
                return new OL.Application();
            }
        }
    }

    /// <summary>
    /// Prepare An Email In Outlook
    /// </summary>
    /// <param name="ToAddress"></param>
    /// <param name="Subject"></param>
    /// <param name="Body"></param>
    /// <param name="Attachment"></param>
    public static void CreateEmail(string ToAddress, string Subject, string Body, string AttachmentFileName)
    {
        //Create an instance of Outlook (or use existing instance if it already exists
        var olApp = Application;

        // Create a mail item
        var olMail = olApp.CreateItem(OL.OlItemType.olMailItem) as OL.MailItem;
        olMail.Subject = Subject;
        olMail.To = ToAddress;

        // Set Body
        olMail.Body = Body;

        // Add Attachment
        string name = System.IO.Path.GetFileName(AttachmentFileName);
        olMail.Attachments.Add(AttachmentFileName, OL.OlAttachmentType.olByValue, 1, name);

        // Display Mail Window
        olMail.Display();
    }

要使其正常工作,您还需要:

代码语言:javascript
复制
using System.Runtime.InteropServices;
using OL = Microsoft.Office.Interop.Outlook;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5538083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档