tiyan 发表于 2015-9-13 14:03:15

C#实现outlook自动签名

Outlook下实现自动签名的方式

网上找到一篇资料是在outlook里用vba实现的,但是这样实现的方式由于数字认证的问题不便于部署
在此介绍一种C#下实现的方式,目前确定的outlook版本为2007以上,2003的未测试


通过vs2012新建office->2010->outlook2010外接程序的解决方案

步骤如下:

源代码如下:

using System;
using Office = Microsoft.Office.Core;
using Microsoft.Office.Interop.Outlook;
namespace AutoSigAddIn
{
    public partial class ThisAddIn
    {
      private Inspectors _inspectors;
      private MailItem _mailItem;
      /// <summary>
      /// 插件启动
      /// </summary>
      /// <param name="sender"></param>
      /// <param name="e"></param>
      private void ThisAddIn_Startup(object sender, EventArgs e)
      {
            Application.Startup+=Application_Startup;
      }
      
      /// <summary>
      /// 应用程序启动
      /// </summary>
      private void Application_Startup()
      {
            _inspectors=Application.Inspectors;
            _inspectors.NewInspector += inspectors_NewInspector;
      }
      void inspectors_NewInspector(Inspector inspector)
      {
            _mailItem = inspector.CurrentItem;
            //当主题不为空并且是 RE:或FW: 开头的,不添加签名
            if (!string.IsNullOrEmpty(_mailItem.Subject)
                &&(_mailItem.Subject.ToUpper().StartsWith("RE:")
                  ||_mailItem.Subject.ToUpper().StartsWith("FW:")))
            {
                return;
            }
            //设置签名
            _mailItem.HTMLBody += @"<p>自动签名</p>";
            _mailItem.HTMLBody += DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss");
      }
      private void ThisAddIn_Shutdown(object sender, EventArgs e)
      {
      }
      #region VSTO 生成的代码
      /// <summary>
      /// 设计器支持所需的方法 - 不要
      /// 使用代码编辑器修改此方法的内容。
      /// </summary>
      private void InternalStartup()
      {
            Startup += ThisAddIn_Startup;
            Shutdown += ThisAddIn_Shutdown;
      }
      
      #endregion
    }
}
页: [1]
查看完整版本: C#实现outlook自动签名