原始出处:www.cnblogs.com/Charltsing/p/OutlookAddinsTips.html
联系QQ:564955427

从去年到现在,写了四五个Outlook插件,其中两个是给CRM系统配套使用的,代码经过两三次迭代,目前基本结构相对比较稳定,所以简单说说,做个总结。

开发环境
1、不要使用VSTO开发Outlook插件,除非你是在企业内部使用,有专门的IT管理员可以确保每台电脑安装环境的统一。否则5%的电脑部署不上。
2、推荐使用Com Addins或者一些第三方开源或者商业框架开发Outlook。
3、如果需要操作MAPI或者更底层的东西,推荐使用Redemption库(收费)。
4、C#开发Outlook插件依赖Com对象,这会给开发带来一些限制。

关于Outlook

1、不要相信Outlook里面提供的事件会像想象的那样工作,你只有亲自测试,才会知道这里面有多大的坑。(例如邮件到达事件和同步事件)
2、时刻记住Outlook对邮件的各种操作都是异步的,理解这一点,你才会知道为什么某些代码工作起来不太对劲。
3、Outlook的Ribbon回调与Office其他的程序不同,可以根据不同的界面加载不同的xml,所以它支持动态更新菜单。
4、Outlook的窗格需要包装再调用创建,具体参考MSDN;修改Forms也请参考MSDN。
5、Outlook的自定义字段是有bug的,反复修改保存会导致Outlook提示邮件被占用,需要等候一段时间重试或重启Outlook。这个问题从2013的某个更新之后开始出现,到Office365依然存在。
6、Outlook对插件的启动和退出要求比较严格,对占用事件较长的插件都会禁用,因此如果你想在插件启动的时候做初始化,建议使用子线程,同时注意跨线程操作Outlook的UI问题。
7、从Outlook 2010开始,默认情况下,Outlook不会调用IDTExtensibility2接口的OnBeginShutdown和OnDisconnection,这是为了确保Outlook可以快速关闭。如果要改变这个默认设置,需要增加插件的注册表设置。
8、在加载项管理器里面去掉勾选再勾上和Outlook启动时加载插件的行为不一致,注意CTPFactoryAvailable的执行顺序。
9、小心处理内存泄漏问题。

下面是我开发的Outlook插件基本功能演示界面

最近给几个CRM软件配套开发了Outlook插件,讲讲Outlook插件开发注意事项的更多相关文章

  1. JEPF 3.1.2 发布,我们的软件机床(软件快速开发平台)

    JEPF新一代软件快速开发平台(Java Elephant Platform)是一款优秀的平台产品,它本着灵活.快捷开发.高性能.高协作性.高稳定性.高可用性.人性化的操作体验为设计宗旨历经2年研发成 ...

  2. 欲实施CRM软件,必须先懂什么是CRM软件

    CRM是Customer Relationship Management(客户关系管理)的缩写,它是利用信息科学技术,实现市场营销.销售.服务等活动自动化,使企业能更高效地为客户提供满意.周到的服务, ...

  3. 软件快速开发平台 JEPF

    JEPF新一代软件快速开发平台(Java Elephant Platform)是一款优秀的平台产品,它本着灵活.快捷开发.高性能.高协作性.高稳定性.高可用性.人性化的操作体验为设计宗旨历经2年研发成 ...

  4. 推荐几个最好用的CRM软件,本人亲测

    CRM是英文Customer Relationship Management 的简写,一般译作“客户关系管理”.CRM最早产生于美国,由Gartner Group 首先提出的CRM这个概念的.20世纪 ...

  5. 简单5步说清App软件在线开发、App制作多少钱?

    开发制作一款App,所有人都会首先关心开发一款App多少钱这个问题.从网上的信息来看,花费个几十万是很正常的事情,甚至有人说要花上百万才能制作出一款App.那么App软件的开发制作到底和什么有关?怎么 ...

  6. [转]3天搞定的小型B/S内部管理类软件定制开发项目【软件开发实战10步骤详解】

    本文转自:http://www.cnblogs.com/jirigala/archive/2010/10/07/1845275.html 2010-10-07 21:39 by 通用C#系统架构, 5 ...

  7. 小黄豆CRM软件安装

    小黄豆CRM软件(官方网址:http://www.xhdcrm.com,演示地址:http://demo.xhdcrm.com)是一款开源免费的客户关系管理系统,其客户跟进模块简单易用.安装环境是wi ...

  8. 勤拂拭软件Android开发之旅(1) 之 Android 开发环境搭建

    勤拂拭软件工作室原创出品,欢迎转载,欢迎交流. 转载请注明原文:http://www.cnblogs.com/wangleiblog/p/6019063.html 勤拂拭软件Android开发之旅目录 ...

  9. 云计算CRM软件厂商,你青睐哪家?

    2018年CRM系统软件市场风起云涌,国内外厂商群雄逐鹿.2019年,新一轮的角逐已然展开.据Gartner报告称,CRM客户关系管理系统在2017年全球的销售额首次超越数据库管理系统((Databa ...

随机推荐

  1. IOS手机伪类a:active失效

    IOS手机伪类a:active失效:点击更改颜色,松开恢复 解决方案:OS系统的移动设备中,需要在按钮元素或body/html上绑定一个touchstart事件才能激活:active状态 docume ...

  2. Linux查看修改文件句柄数

    SuSE 11SP3 默认句柄数是1024 1.查看linux的文件句柄数 ulimit -a 2.修改文件句柄数 ①ulimit -n 65535②修改linux系统参数.vi /etc/secur ...

  3. Delphi ListBox组件

  4. linux centos 7安装 apache php 及mariadb

    1安装Apache, PHP, MySQL以及php库组件. yum -y install httpd php mysql  php-mysql 2 安装apache扩展 yum -y install ...

  5. Lubuntu 16.04 64位兼容32位程序

    第一步:确认自己系统的架构 dpkg --print-architecture输出:amd64 结果为  amd64 表示系统是64位的 第二步:确认打开了多架构支持功能 dpkg --print-f ...

  6. CRM项目讲解和django知识点回顾

    今天想把之前写的CRM项目梳理下,顺便回顾一下djiango的部分重要知识. 1.登录页面(包含简单验证码) 首先来看下CRM的登录页面,样式啥的不重要,大家可以去jquery ui的网站上或者其他地 ...

  7. kotlin高阶函数实战&DSL入门

    传统函数演示: 这里以电视节目“非诚勿扰”为例,男人去从一大堆美女当中挑选出自己中意的对象,比如台上有24位妹子,其档案如下: 接下来第一个男嘉宾出场啦,如下: 下面用代码来实现一下,比较简单: 先定 ...

  8. BZOJ1079 [SCOI2008]着色方案[组合计数DP]

    $有a_{1}个1,a_{2}个2,...,a_{n}个n(n<=15,a_{n}<=5),求排成一列相邻位不相同的方案数.$ 关于这题的教训记录: 学会对于复杂的影响分开计,善于发现整体 ...

  9. MyEclipse使用教程:添加和更新插件(二)

    [MyEclipse CI 2019.4.0安装包下载] 通过Eclipse Marketplace目录或各种更新站点类型添加插件来自定义您的Genuitec IDE. Genuitec提供以下IDE ...

  10. 【leetcode】1262. Greatest Sum Divisible by Three

    题目如下: Given an array nums of integers, we need to find the maximum possible sum of elements of the a ...