如何使用.net回复Outlook mailitem

时间:2013-05-02 21:56:39

标签: c# outlook ms-office office-interop office-2007

我正在编写一个Outlook 2007加载项,它根据电子邮件查询编写业务报价。我使用Windows表单撰写引用。一切正常,直到我用引用信息回复原始消息。

private void btnSend_Click(object sender, EventArgs e) 
{
    Outlook.MailItem theMail = ((Outlook._MailItem)quote.mailItem).Reply();
    theMail.Subject = "This is the quote";
    theMail.Body = <Some html composed elsewhere>;

    Outlook.Recipient rcp = theMail.Recipients.Add("Joe Blow");
    Outlook.AddressEntry ae = rcp.AddressEntry;
    ae.Address = "joe@blow.com";
}

quote.mailItem是收到的电子邮件请求。当我运行代码时,它会抛出执行rcp.AddressEntry的异常。错误是

  

'无法找到对象'

。 我需要做的是添加和删除收件人以及在发送之前在报价上设置 CC BCC 字段。收件人可能不在地址簿中。我已经使用其他邮件库完成了这项工作,它应该很简单,但我似乎正在为Outlook推出错误的树。

编辑发现它 - 感谢德米特里指出我正确的方向。

Outlook.Recipient rcp = theMail.Recipients.Add("joe blow <joe@blow.com>");
rcp.Type = (int)Outlook.OlMailRecipientType.olTo;

1 个答案:

答案 0 :(得分:1)

必须先解析收件人。并且您无法设置AddressEntry.Address属性 - 即使它是可设置的,它也不会指向消息收件人表。

Outlook.Recipient rcp = theMail.Recipients.Add("Joe Blow <joe@blow.com>");
rcp.Resolve();