我正在写一个Outlook外接程序,它将用于跟踪回复或转发的电子邮件的数量。在开发个人电脑,我有outlook 2010和代码工作良好,但它是失败的outlook 2007是安装在最终用户的PC上的版本。错误消息,“无法执行运行时绑定到空引用”。在发送电子邮件之前,我需要的是邮箱、收件人的电子邮件地址和主题。这是我作为一封新邮件发送电子邮件的代码,您能告诉我office 2010和2007的API有什么不同吗?我应该用什么代替?
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");
}
}
发布于 2014-01-12 20:36:09
我可以给您一个简单的建议;使用Outlook 2007模板( VS2010)代替。这在Outlook 2007和2010中都适用。如果您有此优势,请在解决方案中添加两个项目,一个用于OL2007,另一个用于OL2010。
发布于 2014-01-12 22:08:31
通常经验法则是,您必须在支持Outlook最低版本的计算机上进行开发(在您的示例中,是Outlook 2007 )。
或者,至少可以在安装了Outlook 2007的计算机上创建互操作dll,并在项目中添加该互操作dll (而不是添加Outlook对象)作为引用。
发布于 2014-06-26 12:24:06
我意识到这不是编码错误,我使用了上面的建议,使用了VS 2010和Office 2007的计算机,并解决了这个问题。
https://stackoverflow.com/questions/21083938
复制相似问题