首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法转换'Microsoft.Office.Interop.Outlook.ApplicationClass‘类型的COM对象

无法转换'Microsoft.Office.Interop.Outlook.ApplicationClass‘类型的COM对象
EN

Stack Overflow用户
提问于 2015-01-08 09:00:04
回答 1查看 1.4K关注 0票数 1

我编写了这个代码来使用我的.net应用程序的outlook发送附加文件,下面是代码:

代码语言:javascript
运行
复制
Microsoft.Office.Interop.Outlook.Application outlook = new Microsoft.Office.Interop.Outlook.Application();
            Microsoft.Office.Interop.Outlook.Application session = new Microsoft.Office.Interop.Outlook.Application();
            Microsoft.Office.Interop.Outlook.NameSpace ns = outlook.Session;
            Outlook.MailItem mail = outlook.Application.CreateItem(Outlook.OlItemType.olMailItem) as Outlook.MailItem;
            mail.Subject = txtSubject.Text;
            mail.To = txtTo.Text;
            mail.Subject = txtSubject.Text;
            mail.Body = txtBody.Text;
            mail.Attachments.Add(@"c:\Users\admin\Desktop\Excel.txt",
                    Outlook.OlAttachmentType.olByValue, Type.Missing,
                    Type.Missing);
            Outlook.Accounts accounts = outlook.Session.Accounts;

            foreach (Outlook.Account account in accounts)
            {
                // When the e-mail address matches, send the mail.
                if (string.Equals(account.SmtpAddress, txtFrom.Text, StringComparison.OrdinalIgnoreCase))
                {
                    mail.SendUsingAccount = account;
                    mail.Save();
                    ((Outlook._MailItem)outlook).Send();
                    lblStatus.Text = "Report Sent";
                    break;
                }
            }

但是,当它到达Send()方法调用时,我会得到以下错误:

代码语言:javascript
运行
复制
Unable to cast COM object of type 'Microsoft.Office.Interop.Outlook.ApplicationClass' to interface type 'Microsoft.Office.Interop.Outlook._MailItem'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{00063034-0000-0000-C000-000000000046}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-08 09:06:27

你投错对象了

outlook被定义为Microsoft.Office.Interop.Outlook.Application

你需要改变

代码语言:javascript
运行
复制
((Outlook._MailItem)outlook).Send();

至:

代码语言:javascript
运行
复制
((Outlook._MailItem)mail).Send();

参考文献

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27836278

复制
相关文章

相似问题

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