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
    }
}

posted @ 2014-03-29 13:46  诸葛小亮  阅读(1866)  评论(1编辑  收藏  举报