如何使用VSTO自动触发Outlook电子邮件中的链接

时间:2016-11-28 09:46:02

标签: c# vsto outlook-addin

我试图以编程方式点击链接,该链接会创建一封电子邮件,其中包含电子邮件的预定义主题,收件人,抄送,密件抄送和正文内容。我的要求是,如果我选择一个Outlook邮件项目并单击“通过邮件批准“在我的Addin中,代码将搜索超链接”单击此处批准“在邮件正文中”并自动单击超链接。 超链接“单击此处批准”会创建一个电子邮件,其中包含电子邮件的预定义主题,to,cc,bcc和正文内容。 我不确定如何使用VSTO,因为所有其他解决方案建议使用JQuery和Javascript

Object selObject = this.Application.ActiveExplorer().Selection[1];
        Outlook._MailItem eMail = (Outlook._MailItem)
        this.Application.CreateItem(Outlook.OlItemType.olMailItem);
        eMail = ((Outlook._MailItem)selObject);
        if(eMail.HTMLBody.Contains("Approve"))
        {

        }

我不确定我能在代码的IF段写什么。请建议。

1 个答案:

答案 0 :(得分:0)

Outlook不提供打开超链接的任何内容。您可以使用以下代码(Process.Start)在默认Web浏览器中打开它们:

Process.Start("your_hyperlink");

或者只是根据单击“批准”按钮的信息在Outlook中以编程方式创建邮件项目。

 Outlook.MailItem mail = null;
Outlook.Recipients mailRecipients = null;
Outlook.Recipient mailRecipient = null;
try
{
    mail = OutlookApp.CreateItem(Outlook.OlItemType.olMailItem)
       as Outlook.MailItem;
    mail.Subject = "A programatically generated e-mail";
    mailRecipients = mail.Recipients;
    mailRecipient = mailRecipients.Add("Eugene Astafiev");
    mailRecipient.Resolve();
    if (mailRecipient.Resolved)
    {
        mail.Send();
    }
    else
    {
        System.Windows.Forms.MessageBox.Show(
            "There is no such record in your address book.");
    }
}
catch (Exception ex)
{
    System.Windows.Forms.MessageBox.Show(ex.Message,
        "An exception is occured in the code of add-in.");
}
finally
{
    if (mailRecipient != null) Marshal.ReleaseComObject(mailRecipient);
    if (mailRecipients != null) Marshal.ReleaseComObject(mailRecipients);
    if (mail != null) Marshal.ReleaseComObject(mail);
}

请查看以下文章以获取更多信息和样本: