Outlook 所支持的邮件规则相当有用,我们经常需要针对某些特征的邮件做特殊的处理。例如将其移动到某个特定文件夹,或者删除它等等。

Outlook所支持的邮件规则主要两大类:收到邮件时和发送邮件时

一个邮件规则的三大要素

1. 条件(Condition)

2. 动作(Action)

3. 例外(Exception)

下面是一个简单的范例,这是通过Visual Studio 2008所编写的Outlook 2007 外接程序(Add -in )。这个小程序演示了如何添加一个规则,该规则在收到邮件时检查所有发件人,如果发件人是chenxizhang@gmail.com,那么将执行一个动作(播放一个声音)。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using Outlook = Microsoft.Office.Interop.Outlook;
using Office = Microsoft.Office.Core;

namespace TestMailRule
{
    public partial class ThisAddIn
    {
        private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            Outlook.Rules rules = Application.Session.DefaultStore.GetRules();
            if (rules["测试"] == null)
            {
                Outlook.Rule rule = rules.Create("测试", Outlook.OlRuleType.olRuleReceive);
                rule.Conditions.From.Recipients.Add("chenxizhang@gmail.com");
                rule.Conditions.From.Enabled = true;
                rule.Conditions.From.Recipients.ResolveAll();
                rule.Actions.PlaySound.FilePath = @"E:\My Documents\LOADER.WAV";

rule.Actions.PlaySound.Enabled = true;
                rule.Enabled = true;
                rules.Save(true);
            }
        }

private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
        {
        }

#region VSTO 生成的代码

/// <summary>
        /// 设计器支持所需的方法 - 不要
        /// 使用代码编辑器修改此方法的内容。
        /// </summary>
        private void InternalStartup()
        {
            this.Startup += new System.EventHandler(ThisAddIn_Startup);
            this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
        }
        #endregion
    }
}

看起来不错,对吧?但事实上你完全可以通过手工做出上述的效果。

还有一个难题没有解决:如何自定义动作,并将其部署到Outlook里面去?

通过编程为Outlook 2007添加邮件规则的更多相关文章

  1. 使用 C# 进行 Outlook 2007 编程

    原文:使用 C# 进行 Outlook 2007 编程 探讨如何使用 C# 编程语言生成 Outlook 识别的应用程序和 Outlook 外接程序. 请从"Add References&q ...

  2. 部署kube-prometheus,添加邮件报警

    这个项目出自coreos,已经存在很久了,第一次尝试的时候还很简陋,现在完善了很多. 项目提供了一键部署脚本,跑起来并不难,不过个人感觉要真正掌握并灵活使用并不是很容易. kube version: ...

  3. 2017年10月31日结束Outlook 2007与Office 365的连接

    2017 年10月31日 ,微软即将推出 Office 365中Exchange Online邮箱将需要Outlook for Windows的连接,即通过HTTP Over MAPI方式,传统使用R ...

  4. [Asp.net MVC]Asp.net MVC5系列——在模型中添加验证规则

    目录 概述 在模型中添加验证规则 自定义验证规则 伙伴类的使用 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5 ...

  5. 如何修复Outlook 2007源文件.PST及性能优化补丁

    kb961752 微软发布了改善 Outlook 2007 个人数据文件性能的补丁,该补丁未来将会集成于 SP2 中,但是现在对于SP1用户可以提前得到它.   获取地址: http://suppor ...

  6. C# MVC ( 添加路由规则以及路由的反射机制 )

    在项目文件夹下找到 App_Start 下 找到 RouteConfig.cs文件 打开   (1) 约束的规则 从上往下 贪婪性   (2) 用 routes.MapRoute(...) 添加   ...

  7. zabbix添加邮件报警机制

    zabbix添加邮件报警机制 作者:尹正杰 还记得之前跟大家聊过的一个如何监控一个目录的话题吗?我们虽然监控出来数据了,也有数据了,但是,只是监控也没有用啊~因为我们不能24小时盯着屏幕然后 出了事情 ...

  8. Outlook Express 收发邮件出现&quot;0x800CCC0F&quot;错误代码解决方法

    非常多网友在使用Outlook Express收发邮件的过程中,有时能够发送邮件,但出现不能接收信件的问题.每次在收邮件都会在某个地方停止不动,然后报超时,出现错误代码0x800CCC19或0x800 ...

  9. springboot添加邮件发送及压缩功能

    springboot添加邮件发送及文件压缩功能 转载请注明出处:https://www.cnblogs.com/funnyzpc/p/9190233.html 先来一段诗 ``` 就这样吧 忍受折磨 ...

随机推荐

  1. Android简易记事本

    此次做的Android简易记事本的存储方式使用了SQLite数据库,然后界面的实现比较简单,但是,具有增删改查的基本功能,这里可以看一下效果图,如下: 具体操作就是长按可以删除操作,点击可以进行修改, ...

  2. TLD算法原理--学习理解之(二)

    正如名字所示,TLD算法主要由三个模块构成:追踪器(tracker),检测器(detector)和机器学习(learning). 对于视频追踪来说,常用的方法有两种,一是使用追踪器根据物体在上一帧的位 ...

  3. 使用JSON JavaScriptSerializer进行反序列化和序列化时报错,字符的长度超出了MaxJsonLength的长度

    文章参考:https://www.cnblogs.com/wangfuyou/p/6046307.html 1.解决办法是在web.config增加如下节点到<configuration> ...

  4. Java内存管理及对Java对象管理

    Java内存管理及对Java对象管理 1Java内存管理 1.1Java中的堆和栈 通常来说,人们会将Java内存氛围栈内存(Stack)和堆内存(Heap). 栈内存用来保存基本类型的变量和对象的引 ...

  5. MongoDB建立主从复制小案例(一主一从)

    花了两天学习了mongoDB, 今天接触到了mongo的主从配置, 把它记下来 1. 开启两个mongo服务器(用于一主一从, 没有加安全验证相关参数 : 可以使用mongd-help查看) mong ...

  6. HDU 3377 Plan

    Problem Description One day, Resty comes to an incredible world to seek Eve -- The origin of life. L ...

  7. HDU1754-I Hate It-线段树

    I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  8. codeforces Gym 101063 C

    二进制转十进制 然后按位比较 传送门 http://codeforces.com/gym/101063 #include <cstdio> #include <cmath> # ...

  9. Java入门篇(三)——Java流程控制

    前两篇已经了解了Java语言基础,本篇开始Java的流程控制.流程控制对任何一门编程语言都是至关重要的,它提供了控制程序步骤的基本手段. 一.复合语句 Java语言的复合语句是以整个块区为单位的语句, ...

  10. Navicat如何进行搜索筛选

    分类: Navicat Navicat提供的"在数据库或模式中查找"功能用于一个数据库和/或模式内搜索表和视图的记录.Navicat"对象筛选"功能可以让用户在 ...