原文:outlook 会议室

但是,里面的方法只能用于发送普通电子邮件。如果要发起会议之类的特殊邮件的话,可以C#调用Outlook API,自身的API。

创建项目后,为它添加.NET引用:“Microsoft.Office.Interop.Outlook"的引用,即可调用,需要注意的是,在添加的时候,注意一下OFFICE版本号。

在C#调用Outlook API发起会议的过程中,遇到了一个问题:

创建完一个约会条目后,找了很久没找到如何为这一约会指定“发件人”,后来一想,Window CF 中,查找人员信息有个OutlookSession的东东,

那这Outlook会不会有同样的方式呢,经过测试,还真的找到方法,原来,它的API指定的发件人是和你机上运行的Outlook的帐户设置直接相关的。

通过 ApplicationClass.Session.Accounts即可找到您设置的帐户集合,需要特别特别注意的是,在这里,取某个人员时,集合的索引是从1开始,而不是

从0开始。 找到相关的帐户后,可以通过 AppointmentItem.SendUsingAccount 属性来指定约会的发件人。但是,如果我不使用Outlook里帐户设置的帐户集合,而要指定其它的邮件帐户来发送邮件时该怎么弄?到现在也没有找到或发现办法,希望知道的达人们能

指点一下门路,拜谢先~~~~

下面是测试的代码,在WIN2003+OFFICE12下运行通过,成功创建会议:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using Microsoft.Office.Interop.Outlook;
  5. ////////////////////
  6. /* 调用Outlook api 发起会议
  7. /* mcjeremy@cnblogs.com
  8. ////////////////////
  9. namespace OutlookAPI
  10. {
  11. class Program
  12. {
  13. static void Main(string[] args)
  14. {
  15. try
  16. {
  17. ApplicationClass oApp =
  18. new Microsoft.Office.Interop.Outlook.ApplicationClass();
  19. //会议是约会的一种
  20. AppointmentItem oItem = (AppointmentItem)oApp.CreateItem(
  21. OlItemType.olAppointmentItem);
  22. oItem.MeetingStatus = OlMeetingStatus.olMeeting;
  23. oItem.Subject = "主题";
  24. oItem.Body = "内容";
  25. oItem.Location = "地点";
  26. //开始时间 
  27. oItem.Start = DateTime.Now.AddDays(1);
  28. //结束时间
  29. oItem.End = DateTime.Now.AddDays(2);
  30. //提醒设置
  31. oItem.ReminderSet = true;
  32. ;
  33. //是否全天事件
  34. oItem.AllDayEvent = false;
  35. oItem.BusyStatus = OlBusyStatus.olBusy;
  36. //索引从1开始,而不是从0
  37. //发件人的帐号信息
  38. oItem.SendUsingAccount = oApp.Session.Accounts[2];
  39. //添加必选人
  40. Recipient force = oItem.Recipients.Add("mailuser2@mailserver.com");
  41. force.Type = (int)OlMeetingRecipientType.olRequired;
  42. //添加可选人
  43. Recipient opt = oItem.Recipients.Add("mailuser3@p.mailserver.com");
  44. opt.Type = (int)OlMeetingRecipientType.olOptional;
  45. //添加会议发起者
  46. Recipient sender = oItem.Recipients.Add("mailuser1@mailserver.com");
  47. sender.Type = (int)OlMeetingRecipientType.olOrganizer;
  48. oItem.Recipients.ResolveAll();
  49. //oItem.SaveAs("d:/TEST.MSG", OlSaveAsType.olMSG);
  50. oItem.Send();
  51. //MailItem mItem = (MailItem)oApp.CreateItem(OlItemType.olMailItem);
  52. //Recipient rTo = mItem.Recipients.Add("****");
  53. //rTo.Type = (int)OlMailRecipientType.olTo;
  54. //Recipient rCC=mItem.Recipients.Add("****");
  55. //rCC.Type = (int)OlMailRecipientType.olCC;
  56. //Recipient rBC = mItem.Recipients.Add("****");
  57. //rBC.Type = (int)OlMailRecipientType.olBCC;
  58. Console.WriteLine("OK");
  59. }
  60. catch (System.Exception ex)
  61. {
  62. Console.WriteLine(ex.Message);
  63. }
  64. Console.ReadLine();
  65. }
  66. }
  67. }

以上介绍C#调用Outlook API,希望对你有所帮助。

outlook 会议室的更多相关文章

  1. OutLook会议室预定提醒

    项目组采用敏捷开发管理,每两周一个迭代.写个工具做会议室预定. 代码下载:https://download.csdn.net/download/linmilove/10547579 Appointme ...

  2. Redis内存数据库在Exchange会议室的应用

    本文论述了现有Exchange会议室应用现状和不足之处,并详细介绍了Redis内存数据库在Exchange会议室的应用,并给出了一种高性能的应用架构及采用关键技术和关键实现过程,最终实现大幅改进系统性 ...

  3. 启明星会议室预定系统Outlook版开始支持Exchange2013与Office365版

    版本启明星会议室预定系统支持Exchange2013与微软云服务Office365版.(注意:Exchange2007与Exchange2010也适合此版本) 1.安装 首页,安装类似启明星普通的会议 ...

  4. Mac Outlook 2016 无法打开会议室日历

    问题:Mac Outlook 2016 无法打开会议室日历信息,报错截图如下: 解决方案: Set-MailboxFolderPermission -Identity XXX@xxx.com:\日历 ...

  5. 启明星Exchange/outlook预定会议室终端显示解决方案

    启明星会议室预定系统(Exchange2007及其以上版本,)终端调用说明 (一)技术原理 系统采用三级刷新方式,以尽可能减少对服务器的访问压力. (1) exe程序,每隔5分钟访问Exchange, ...

  6. 跟着未名学Office - 高效工作Outlook

    目录 第一篇邮件与联系人    1 第一节    使用与技巧    1 第二节    高效    11 第二篇    事务助手    21 第一节    日程管理    21 第二节    任务    ...

  7. Xamarin+Prism小试牛刀:定制跨平台Outlook邮箱应用

    通过本文你将学会如下内容: 1,如何使用Xamarin开发跨平台(Windows,Android,iOS)应用. 2,如何使用微软的登录界面登入Microsoft账号. 3,如何使用Outlook邮箱 ...

  8. Xamarin+Prism小试牛刀:定制跨平台Outlook邮箱应用(后续)

    在[Xamarin+Prism小试牛刀:定制跨平台Outlook邮箱应用]里面提到了Microsoft 身份认证,其实这也是一大块需要注意的地方,特作为后续补充这些知识点.上章是使用了Microsof ...

  9. 在Outlook中查看预览SharePoint文档库的文档

    本文概况 阅读时间: 约2分钟 适用版本:SharePoint Server 2010及以上 面向用户:普通用户,管理员 难度指数:★★☆☆☆ 在日常工作中,总有一些常用的文档需要经常打开查看,其实我 ...

随机推荐

  1. js 滚轮事件 滚轮焦点图(轮播图)

    利用滚轮,切换轮播图.附带mousewheel插件以及原生js写法:   <!doctype html> <html> <head> <meta charse ...

  2. 使用EasyUI实现加入和删除功能

    增删该查是不论什么一个项目都少不了的功能操作.这篇博文主要简单介绍一下怎样使用EasyUI实现加入和删除功能. 首先.导入EasyUI的js代码: <link href="~/Easy ...

  3. SpringMVC 学习笔记(两) @RequestMapping、@PathVariable和其他注意事项

    1.1. @RequestMapping映射请求 SpringMVC 采用 @RequestMapping 注解为控制器指定能够处理那些URL 请求 @requestMapping  能够定义在 类  ...

  4. Android学习路线(十一)管理Activity的生命周期

    当一个用户进入.退出,再次进入你的应用时,你的应用中的Activity 会在它的生命周期的各个状态下切换. 比如,当你的activity第一次启动.它出如今系统的前方接受用户的焦点.在这个过程中,An ...

  5. Rust这个新的语言

    Rust这个新的语言 Rust初步(七):格式化 摘要: 在Rust中,如果要进行屏幕输出,或者写入到文件中,需要对数据进行格式化.这一篇总结一下它所支持的几种格式化方式. 这篇文章参考了以下官方文档 ...

  6. MyEclipse中将项目导出jar包,以及转化成EXE文件

    1.对于项目如何导出jar文件,和生成exe,解答目录如下: 首先生成jar文件,单击项目名称CF-users(这是我的协同过滤项目文件名称)右击--->Export如下图: 单击下一步 Sel ...

  7. [LeetCode] 036. Valid Sudoku (Easy) (C++)

    指数:[LeetCode] Leetcode 解决问题的指数 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 036. ...

  8. TCP在三次握手协议和四波(图)

    设定TCP需要建立一个三次握手的能力,断开需要握手.整步骤,如看到下面的附图: 先来看看怎样建立连接的. 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资 ...

  9. 1023 Train Problem II(卡特兰数)

    Problem Description As we all know the Train Problem I, the boss of the Ignatius Train Station want ...

  10. StyleCop中有一些官方自己写好的检测规则下面就是英文的解释

    在StyleCop中有一些官方自己写好的检测规则下面就是英文的解释 文档规则 1.SA1600:ElementsMustBeDocumented元素必须添加注释 2.SA1601: PartialEl ...