首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用C#从Outlook 2007发送电子邮件时,无法执行对空引用的运行时绑定

使用C#从Outlook 2007发送电子邮件时,无法执行对空引用的运行时绑定
EN

Stack Overflow用户
提问于 2014-01-12 20:33:26
回答 3查看 272关注 0票数 1

我正在写一个Outlook外接程序,它将用于跟踪回复或转发的电子邮件的数量。在开发个人电脑,我有outlook 2010和代码工作良好,但它是失败的outlook 2007是安装在最终用户的PC上的版本。错误消息,“无法执行运行时绑定到空引用”。在发送电子邮件之前,我需要的是邮箱、收件人的电子邮件地址和主题。这是我作为一封新邮件发送电子邮件的代码,您能告诉我office 2010和2007的API有什么不同吗?我应该用什么代替?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    private void Send_Click(object sender, RibbonControlEventArgs e)
    {
        try
        {
            string _sub, _from, _to;
            var inspector = this.Context as Outlook.Inspector;
            dynamic mail = inspector.CurrentItem;
            _from = mail.SendUsingAccount.DisplayName.ToString();
            _to = mail.To.ToString();
            _sub = mail.Subject.ToString();
            /*
            some extra code to save to database before sending email
            */
            mail.Send();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Error occured in send command");
        }
    } 
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-12 20:36:09

我可以给您一个简单的建议;使用Outlook 2007模板( VS2010)代替。这在Outlook 2007和2010中都适用。如果您有此优势,请在解决方案中添加两个项目,一个用于OL2007,另一个用于OL2010。

票数 1
EN

Stack Overflow用户

发布于 2014-01-12 22:08:31

通常经验法则是,您必须在支持Outlook最低版本的计算机上进行开发(在您的示例中,是Outlook 2007 )。

或者,至少可以在安装了Outlook 2007的计算机上创建互操作dll,并在项目中添加该互操作dll (而不是添加Outlook对象)作为引用。

票数 0
EN

Stack Overflow用户

发布于 2014-06-26 12:24:06

我意识到这不是编码错误,我使用了上面的建议,使用了VS 2010和Office 2007的计算机,并解决了这个问题。

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

https://stackoverflow.com/questions/21083938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文