设为首页 收藏本站
查看: 1187|回复: 0

[经验分享] VSTO Outlook 项目和文件夹的编程示例

[复制链接]

尚未签到

发表于 2015-9-12 13:33:48 | 显示全部楼层 |阅读模式
Microsoft Outlook 对象模型通常用于访问文件夹中的各种类型的项目。本文包含可用于通过使用 Microsoft Visual C# .NET 来引用 Outlook 项目和 Outlook 文件夹的方法、属性和对象的示例。
本文包含下列主题及其相关示例:

  • 引用现有的文件夹

    • GetDefaultFolder 方法
    • Folders 对象
    • Parent 属性
    • GetSharedDefaultFolder 方法
    • GetFolderFromID 方法


  • 创建新文件夹和引用新文件夹

    • Folders.Add 方法


  • 创建新项目和引用新项目

    • CreateItem 方法
    • Items.Add 方法
    • CreateItemFromTemplate 方法


  • 引用现有的项目

    • Using Items(I) 方法
    • Using Items("Subject") 方法
    • Find 方法
    • Restrict 方法
    • GetItemFromID 方法


  
  

引用现有的文件夹
  

GetDefaultFolder 方法
  默认文件夹是那些与接收传入邮件的“收件箱”处于同一级别的文件夹。 如果配置文件中有多个“收件箱”,则可以按 Ctrl+Shift+I 来选择默认“收件箱”。 默认文件夹是那些定期使用的文件夹,如“日历”文件夹、“联系人”文件夹和“任务”文件夹。 您可以使用 GetDefaultFolder 方法方便地引用这些文件夹。 GetDefaultFolders 方法采用一个用于定义您要引用的文件夹类型的参数。 Outlook 对象具有一个您可以选择的枚举。 此枚举是在 Outlook.OlDefaultFolders 枚举类型中定义的。 下面的示例代码将 oFolder 对象变量指定给默认的“收件箱”文件夹。

    Outlook._Application olApp = new Outlook.ApplicationClass(); Outlook._NameSpace olNS = olApp.GetNamespace("MAPI");
  Outlook.MAPIFolder oFolder = olNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox); Console.Write(oFolder.Name);

    




Folders 对象
  可以使用 Folders 对象来引用 Outlook 文件夹列表中的任何文件夹。Folders 对象通常用于引用 Microsoft Exchange 文件夹或不是默认 Outlook 文件夹的其他任何文件夹。
下面的示例代码说明如何引用名为“My Public Folder”的公用文件夹。请注意,您通常是先从最顶端的文件夹开始,然后向下查找您必须引用的文件夹。另请注意,文件夹名称是区分大小写的。您必须使文件夹的大小写和名称与其在 Outlook 文件夹列表中的显示完全匹配。
  

// TODO: Add code here to start the application.
Outlook._Application olApp = new Outlook.ApplicationClass();
Outlook._NameSpace olNS = olApp.GetNamespace("MAPI");Outlook._Folders oFolders;
oFolders = olNS.Folders;
Outlook.MAPIFolder oPublicFolder = oFolders.Item("Public Folders");
oFolders = oPublicFolder.Folders;
Outlook.MAPIFolder oAllPFolder = oFolders.Item("All Public Folders");
oFolders = oAllPFolder.Folders;
Outlook.MAPIFolder oMyFolder  = oFolders.Item("My Public Folder");
Console.Write(oMyFolder.Name);  
  

Folders 对象
  可以使用 Folders 对象来引用 Outlook 文件夹列表中的任何文件夹。Folders 对象通常用于引用 Microsoft Exchange 文件夹或不是默认 Outlook 文件夹的其他任何文件夹。
下面的示例代码说明如何引用名为“My Public Folder”的公用文件夹。请注意,您通常是先从最顶端的文件夹开始,然后向下查找您必须引用的文件夹。另请注意,文件夹名称是区分大小写的。您必须使文件夹的大小写和名称与其在 Outlook 文件夹列表中的显示完全匹配。
  

  // TODO: Add code here to start the application.
Outlook._Application olApp = new Outlook.ApplicationClass();
Outlook._NameSpace olNS = olApp.GetNamespace("MAPI");Outlook._Folders oFolders;
oFolders = olNS.Folders;
Outlook.MAPIFolder oPublicFolder = oFolders.Item("Public Folders");
oFolders = oPublicFolder.Folders;
Outlook.MAPIFolder oAllPFolder = oFolders.Item("All Public Folders");
oFolders = oAllPFolder.Folders;
Outlook.MAPIFolder oMyFolder  = oFolders.Item("My Public Folder");

  
  

GetSharedDefaultFolder 方法
  如果另一个人已授予您使用其某个默认文件夹的权限,则您可以使用此方法。您可以像使用 GetDefaultFolder 方法一样来使用 GetSharedDefaultFolder 方法,但必须另外指定一个参数。该附加参数用于指定属于其他人的文件夹的名称。该文件夹是您要引用的文件夹。下面的示例代码对其他人的名称进行解析,以验证该人的名称是否有效,并验证其名称是否可以用于 GetSharedDefaultFolder 方法。
  

  GetSharedDefaultFolder:
// TODO: Add code here to start the application.
Outlook._Application olApp = new Outlook.ApplicationClass();
Outlook._NameSpace olNs = olApp.GetNamespace("MAPI");
Outlook.Recipient oRecip = olNs.CreateRecipient("Brian Baker");
oRecip.Resolve();
if (oRecip.Resolved)
{
Outlook.MAPIFolder oFolder = olNs.GetSharedDefaultFolder(oRecip,Outlook.OlDefaultFolders.olFolderCalendar);
Console.Write(oFolder.Name);
}


  
  
  详细描述参考:http://support.microsoft.com/kb/310244/zh-cn
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-112703-1-1.html 上篇帖子: 告别Outlook 下篇帖子: 无法使用Outlook 2003 Out Of Office Assisant
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表