C# 使用C访问挂起的Microsoft Outlook电子邮件#

C# 使用C访问挂起的Microsoft Outlook电子邮件#,c#,email,outlook,C#,Email,Outlook,我目前正在使用一个应用程序,该应用程序以Outlook作为默认值发送本地电子邮件。我遇到的问题是,应用程序打开电子邮件对话框,用户必须手动单击发送按钮,这正是我试图避免的。我已经能够成功访问收件箱和草稿中的项目,但是当应用程序打开对话框时,Outlook不会自动另存为草稿,并且我无法访问挂起的电子邮件。以下代码是我用来访问收件箱和草稿项目的代码。如果有人遇到类似的情况和建议,将不胜感激 Microsoft.Office.Interop.Outlook.Application ap

我目前正在使用一个应用程序,该应用程序以Outlook作为默认值发送本地电子邮件。我遇到的问题是,应用程序打开电子邮件对话框,用户必须手动单击发送按钮,这正是我试图避免的。我已经能够成功访问收件箱和草稿中的项目,但是当应用程序打开对话框时,Outlook不会自动另存为草稿,并且我无法访问挂起的电子邮件。以下代码是我用来访问收件箱和草稿项目的代码。如果有人遇到类似的情况和建议,将不胜感激

        Microsoft.Office.Interop.Outlook.Application app;
        Microsoft.Office.Interop.Outlook.Items items;
        Microsoft.Office.Interop.Outlook.Items draftItems;
        Microsoft.Office.Interop.Outlook.NameSpace ns; 
        Microsoft.Office.Interop.Outlook.MAPIFolder inbox;
        Microsoft.Office.Interop.Outlook.MAPIFolder drafts;

        Microsoft.Office.Interop.Outlook.Application application = new Microsoft.Office.Interop.Outlook.Application();
        app = application;
        ns =  application.Session;
        drafts = ns.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderDrafts);
        inbox = ns.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
        items = inbox.Items;
        draftItems = drafts.Items;
        string test;


        foreach (Object _obj in draftItems)
        {
            if (_obj is Microsoft.Office.Interop.Outlook.MailItem)
            {
                Microsoft.Office.Interop.Outlook.MailItem blah = ((Microsoft.Office.Interop.Outlook.MailItem)_obj);
                blah.Send();
            }
        }

        foreach (Object _obj in items)
        {
            if (_obj is Microsoft.Office.Interop.Outlook.MailItem)
            {
                Microsoft.Office.Interop.Outlook.MailItem blah = ((Microsoft.Office.Interop.Outlook.MailItem)_obj);
                if (blah.UnRead)
                {
                    test = blah.Subject.ToString();
                    test = blah.Body.ToString();
                }
            }
        }

我不确定我是否理解问题所在。调用application.CreaateItem(0)(返回MailItem对象),设置主题和正文,添加收件人,然后调用MailItem.Send

Microsoft对此有自己的看法。

您是希望不使用Outlook发送电子邮件,还是Outlook是必需的第三方,还是我完全忽略了这个问题?我希望使用c#发送电子邮件,Outlook作为默认电子邮件客户端。使用System.Net.Mail.SmtpClient是一个选项,还是您一直在使用第三方依赖项(即展望)?是的,这将是一个选项。问题是访问挂起的电子邮件。有关更多上下文,我正在使用live pdf发送电子邮件。问题是,它只是打开默认客户端,而没有实际发送电子邮件。换句话说,用户必须手动单击“发送”。我想我被您问题中挂起的电子邮件部分卡住了。W当使用SmtpClient时,您可以指定服务器详细信息和消息详细信息,它会在后台发送消息,没有用户交互,也没有挂起的消息。