使用 C# 进行 Outlook 2007 编程
原文:使用 C# 进行 Outlook 2007 编程

探讨如何使用 C# 编程语言生成 Outlook 识别的应用程序和 Outlook 外接程序。

请从"Add References"对话框访问"COM"选项卡,并选择"Microsoft Outlook 12.0 Object Library"

using Microsoft.Office.Interop.Outlook;

 

表 1选择 Application 类型的成员

CreateItem()

允许通过编程创建新的 Outlook 项。

GetNamespace()

提供对数据存储项的访问。到 Outlook 2007 ,MAPI 是唯一可以使用的命名空间,它用于访问 Outlook 文件夹组(收件箱、注释等)。

Quit()

终止当前 Outlook 会话。

COMAddIns

该属性允许您在运行时发现插入到当前 Outlook 实例中的外接程序集合。

一旦有了 Application 类型,就能创建新的 Outlook"项"。通过 Microsoft.Office.Interop.Outlook.OlItemType 枚举可以列出可能的项

public enum OlItemType

{ olAppointmentItem = 1; olContactItem = 2; olDistributionListItem = 7;...}

表 2 详细列出了 OlItemType 枚举的成员与 Application.CreateItem() 产生的返回类型之间的关系。

OlItemType 枚举值       所产生的类型             基本含义
olAppointmentItem     AppointmentItem     表示单个约会。
olContactItem            ContactItem            表示单个联系人。
olDistributionListItem DistributionListItem  表示一个通讯组列表。
olJournalItem            JournalItem              表示单个日记项。
olMailItem                MailItem                  表示单个电子邮件项。
olNoteItem               NoteItem                 表示单个注释。
olPostItem                PostItem                 表示其他人可能浏览的公用文件夹中的公告。
olTaskItem               TaskItem                 表示单个任务。

获得现有 Outlook 项

不管对枚举哪个 Outlook 项感兴趣,基本过程都是:

 

Application.GetNamespace() 获得 NameSpace 类型。

 

NameSpace.GetDefaultFolder() 获得 MAPIFolder 类型。

 

使用 MAPIFolder.Items 索引器枚举子项。

指定字符串"MAPI"作为 GetNamespace() 的参数时,将收到一个 NameSpace 类型,该类型表示具体的 Outlook 数据存储的抽象级别(目前,"MAPI"是唯一有效的命名空间)。

MAPIFolder 类型可以表示给定用户的邮件存储中的任何文件夹(已删除项、收件箱、日记项等)。

文件夹选项的完整范围由 OlDefaultFolders 枚举来表示:

public enum OlDefaultFolders { olFolderCalendar = 9; olFolderConflicts = 19;  ...}

要请求具体的文件夹,请将 OlDefaultFolders 枚举中的值指定为 NameSpace.GetDefaultFolder() 的参数。

我们有一个名为 DisplayInbox() 的方法,该方法接受 ApplicationClass 类型作为其唯一参数。DisplayInbox() 的实现将获得当前的 MAPI 命名空间,以便检索收件箱文件夹中的每个 MailItem。在这里,我们将使用 MailItem 类型的各种属性,将接收时间、发件人名称和主题打印到控制台

我们执行了一个动态检查,以确定当前项是否可以被视为 MailItem(通过 C# 的 as 关键字),以及如果这样我们将与类型的各种属性交互。我们执行该动态检查的理由是 Outlook 收件箱的确可以包含超过 MailItem 类型的项(例如,满足请求)。

foreach(MailItem item in inboxFolder.Items) { ... }

在任何情况下,除了 ReceivedTimeSenderNameSubject 属性,MailItem 类型还能够访问附件和重要性级别,以及内容的 HTML 表现形式(通过 HTMLBody 属性)。

与 Outlook 安全更新的冲突 Outlook 启动的以下对话框

在OutLook2007的工具中打开信任中心,点击编程访问,选项选为从不向我发出可疑活动警告即可。

附个人代码:

using Microsoft.Office.Interop.Outlook;

ApplicationClass ac;
NameSpace outlookNS;

outlookNS = ac.GetNamespace("MAPI");
outlookNS.Logon("its8686", "*****#2009",false, true);

MAPIFolder inboxFolder = outlookNS.GetDefaultFolder(OlDefaultFolders.olFolderInbox);

int count = inboxFolder.Items.Count;
foreach (Object obj in inboxFolder.Items)
{
      MailItem item = obj as MailItem;
      if (item != null)
      {
          string  SenderName = item.SenderName;
          string  Subject = item.Subject;
          DateTime  ReceivedTime = item.ReceivedTime;
          string Body = item.Body;
       }

}

outlookNS.Logoff();

可参照http://blog.csdn.net/myfnst/archive/2004/07/06/35651.aspx

posted on 2014-10-02 06:56 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/4003809.html

使用 C# 进行 Outlook 2007 编程相关推荐

  1. 局域网内配置Outlook 2007支持收发Domino 8.5邮箱

    简介 Lotus&Domino:IBM公司提供的比较古老办公解决方案(最早的版本是1989年发布),目前在企业局域内遗留的系统使用较多,主要提供邮件.会议.联系人等协同办公功能,最新的大版本升 ...

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

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

  3. 关于OUTLOOK 2007邮件无法打印的问题解决方法

    近期经常遇到用户反映Outlook 2007邮件无法打印,打印邮件时提示如下错误: 通过网络搜索,发现有不少遇到同样问题的人,是由于近期更新了Outlook的一个补丁引起的,可以通过卸载该补丁(KB2 ...

  4. 如何在 Outlook 2003、Outlook 2007 中管理pst 文件

    本文介绍如何使用个人存储文件夹(又称为 .pst 文件)备份在 Microsoft Office Outlook 2007.Microsoft Office Outlook 2003  中创建的数据. ...

  5. Office Outlook 2007连接Exchange 2007图示(POP3IMAP)

    这是使用Office Outlook 2007连接Exchange 2007的设置过程.但这个连接也存在POP3和IMAP两种连接,至于两种连接的区别,请谷哥或者百度. 另注意:如果在外网一定记得映射 ...

  6. qq邮箱使用outlook 2007

    一,设置QQ邮箱 开启POPS/SMTP 二.设置outlook 2007 提醒: 最后一步必须用SSL.否则会提示无法连接(一直需要输入邮箱账号和密码) 转载于:https://blog.51cto ...

  7. 用户 Outlook 2007 附件突然不能预览,在国外网站找了解决方案。

    Outlook 2007 附件突然不能预览,在国外网站找了解决方案. 服务器版本: exchange 2010 错误截图如下: 解决方案:大体意思就是编辑一个注册表文件,导入进去就可以了. It do ...

  8. 使用Outlook 2007连接到Exchange Server 2003、2007时出现没有默认网关的错误

    在使用Outlook 2007作为客户端连接到Exchange Server 2003/2007时,会出现一个错误提示: "到Microsoft Exchange的连接不可用.您的网络适配器 ...

  9. outlook 2007 自动答复邮件

    outlook 2007自动答复邮件 步骤 1:创建邮件模板  提示   从 Microsoft Office Online 下载正式(英文)或者非正式(英文)外出邮件模板. 在"文件&qu ...

最新文章

  1. The Security Learning
  2. .tex类型文件怎么阅读_Python用于NLP :处理文本和PDF文件
  3. 2021阿里巴巴大数据技术公开课第一季:外部工具连接SaaS模式云数仓MaxCompute实战
  4. ubuntu安装jdk语句_JDK 12:实际中的切换语句/表达式
  5. Nginx 配置实现web解析php代码 过程记录
  6. 问题六十二:怎么求一元十次方程在区间内的所有不相等的实根(2)——修正“区间端点零值”问题
  7. wiki admin.php,dokuwiki 重置管理员密码
  8. Linux Mint 21编译Android kernel,遇到 multiple definition of `yylloc‘ 的错误解决
  9. 【狂神说:秦疆】SpringMVC笔记
  10. App 上线被拒绝的原因有哪些?
  11. 深度学习(李沐)—————Softmax回归
  12. 记一次微信点赞小网站的事故
  13. 把svg图片生成到svg_“迷失”:SVG指南针玫瑰生成器
  14. kd-tree和八叉树的概念及相关算法
  15. 五分钟了解GRE是什么,四信GRE相关应用推荐
  16. 30个漂亮的免费 Flash 网站模板下载
  17. 智慧城市无线充电故障和fitbits总体规划8月以来的热门新闻
  18. JS 异步编程都有哪些方案?
  19. 开亚软件分析企业外贸客户管理关系问题
  20. Opencv 简单视频播放器

热门文章

  1. 我与博友们分享我的工作经验
  2. 大系统观:1.4时间之矢
  3. Atitit.js javascript异常处理机制与java异常的转换 多重catc hDWR 环境 .js exception process Vob7...
  4. MATLAB输出格式控制 %d,%f,%c,%s的用法
  5. LVS+Keeplive 负载均衡
  6. win10安装cuda10.2+tensorflow-GPU 1.14.0
  7. Ubuntu server 开机网络需要等待5分钟
  8. mysql错误码1003_MySQL错误解决10038
  9. 说说为什么阿里要破冰?
  10. QQ个人文件夹保存位置无效