在 Lotus Domino/Notes R6.x 之前 , 我们还不能完全依靠 iCalendar 功能交换日历信息并处理 iCalendar 邀请。自从 Lotus Domino/Notes R7.02 开始就引入了一种可以为用户提供支持不同邮件平台日历数据交换的功能,我们称这个功能为 icalendar 功能。基于各种不同邮件系统的用户通过 SMTP 即可以 iCalendar 的方式进行日历工作流的交互。被邀请人使用支持 iCalendar 邮件客户端,便可以很方便地回应会议发起人、接受邀请或提议一个新的会议时间。在全新的 Lotus Notes R8.5 中,进一步改善了 iCalendar 交互性功能,这更加有利于用户进行快速、高效的工作,提高生产效率。那么现在就跟随本文开始进入这美妙的 icalendar 交互体验吧!
iCalendar 是一种基于互联网的「日历数据交换」标准(RFC 2445), 有时候该标准也简称为“iCal”。iCalendar 作为应用程序或系统之间的一种可交互的格式,从而让用户使用不同的 Internet 邮件系统进行日历信息的交互。iCalendar 信息格式为 MIME 类型,其类型包括文字/日历。下列几种传输协议支持 MIME 格式,包括 SMTP、HTTP、文件系统、桌面交互协议(如剪贴板或拖/放互动 )、点对点异步通信,以及有线网络传输。 iCalendar 支持用户发送会议请求和任务,通过电子邮件传送方式传送到其他的用户。收件人能够收到 iCalendar 邮件(需要软件支持)能够响应回复发件人是否接受该会议或者重新建议会议的日期与时间。目前已经有很多的邮件产品支持 iCalendar。 Notes 当然也不例外。
vCalendar 是一个老的标准日历数据交换格式,是 iCalendar 的前身,为互联网邮件联盟(IMG)所颁布。iCalendar 则是一个较新的日历数据交换标准(RFC 2445),可以看作是 2.0 版的 vCalendar。在 Lotus Domino/Notes 8.5 中,iCalendar 同样支持并可以处理 vCalendar 数据。
iCalendar 和传统意义的 Calendar 的区别是,iCalendar 不仅限于同一个域内用户之间的 Calendar,用户还 可以发送会议邀请到其他 Internet 邮件地址的用户。从而可以通过 SMTP 路由,而不是通过 Notes 相邻域或非相邻域路由传输。这意味着,我们假设 A 公司的 Notes 用户(UserA)发送一个会议邀请到 B 公司的 Notes 用户(UserB)和 C 公司一个使用 SMTP 但是非 Notes 客户端( 例如使用 Outlook/Exchange)的 UserC,其中 UserA 和 UserB 处于不同的域。UserB 和 UserC 将收到一个直观的会议邀请,能够直接响应(接受、拒绝等),而不是收到一封带有 ics 文件的邮件。对 UserB 和 UserC 两个被邀请者而言,如同使用了 NRPC 协议一般。参见图 1 。 ( 注:NRPC 是 Notes 远程过程调用的缩写,NRPC 是 Domino 邮件路由协议,用于 Domino 服务器之间或两个 Domino 服务器之间快捷的邮件通信。)
图 1 . Notes iCalendar 支持与不同邮件客户端之间的交互
![Notes iCalendar支持与不同邮件客户端之间的交互](https://i-blog.csdnimg.cn/blog_migrate/313e2d5acaec8c882ad20329afcb3c06.png)
针对不同的邮件客户端,不同的配置,iCalendar 的转换方式也不相同。针对 Notes 而言,Notes iCalendar 有两种转换模式:在客户端做转换和在服务器端做转换。
当会议发起人的 Location > Mail > Send outgoing mail 被设置为 Directly to Internet,这就意味着 iCalendar 的转换将发生在 Notes 客户端。
当会议发起人的 Location > Mail > Send outgoing mail 被设置为 through Domino Server,随即 Format for messages addressed to internet addresses 将会出现两个选项:“ MIME Format ”和“ Notes Rich Text Format ”。当设置为“ MIME Format ”时,iCalendar 同样会在客户端发生转换。此时,SMTP & Notes 收件人的地址将会在 Notes 客户端以 iCal 的方式解析为 internet 邮件地址而不是被解析为 Notes 地址。
当 iCalendar 没有在 Notes 客户端发生转换时,经过服务器 SMTP 传输后,iCalendar 将在服务器端进行转换,将邮件形式转换为日历项。
当会议发起人的 Location > Mail > Send outgoing mail 被设置为 through Domino Server,随即 Format for messages addressed to internet addresses 将会出现两个选项:“ MIME Format ”和“ Notes Rich Text Format ”。当设置为” Notes Rich Text Format ”,对于非 Notes 收件人,iCalendar 转化将发生在 Domino 服务器端,而对于 Notes 收件人则无须进行 iCalendar 转换。
在 Lotus Notes 8.5 之前的版本中,Notes iCalendar 对其他的 iCalendar 产品在兼容性上的支持不是很完善,导致在 Notes C&S 与其他日历应用程序之间的交互性存在着一些问题。在 Lotus Notes 8.5 版本中,为了改善此类问题,引入了 iCalendar 兼容模式,特别增加了一些专门为 iCalender 程序改进的新功能,增强了 Notes 的日历处理功能。
不同的邮件应用程序有着不同的功能差异。所以在 Notes 8.5 以前的版本与 Outlook 或其他邮件客户端在 iCalendar 交互上难免存在着一些限制和问题。假设当一个 Notes 用户(会议发起人)发出了一个重复会议邀请 ( 即每日或每周的会议邀请 ), 邀请使用 Outlook/Exchange 或 Gmail 等邮件客户端的非 Notes 用户。当这个 Notes 发起者需要更新全部重复的会议项或部分重复会议项时,或重新自定义重复周末会议或指定非规则重复会议的时候,那么非 Notes 被邀请者所使用的其他日历应用程序将有可能不支持 Notes 重复会议的限制 , 从而将造成严重的互操作性问题。比如部分邀请丢失或者信息保真度下降,这是我们所不愿意见到的。
所以在 Lotus Notes 8.5 中我们提出了“兼容模式”的理念,以改善 Notes 与其他日历应用程序在 iCalendar 交互性上的问题。对于其他邮件客户端(如 Outlook)所不支持的某些功能,在 Notes 的 icalendar" 兼容模式 " 下,采用限制使用的方式来确保这些邮件客户端之间的 icalendar 正常交互。譬如在与一些 Outlook 或其他邮件客户端交互的时候,Outlook 不支持的功能,Notes 用户在使用 " 兼容模式 " 下也变的不可用,比如自定义非规则会议功能。
在 Lotus Notes 8.5 中,日历表单新增一个复选框“ some invitees use other mail program ” 在以往的 response and workflow options 的上方,图标 i 是针对这个功能的帮助说明。 ( 见图 2), 通过标记此选项来表明是否选择“兼容模式”。当 Notes Chair 标记这个选项时,表明他希望采用兼容模式并能以最佳效果发送邀请到 Outlook 和其他电子邮件程序的用户。
当然这个选项“ some invitees use other mail program ”并不包含在缺省的 Calendar 表单里面,需要用户在客户端的 notes.ini 文件中增加一条特别的参数( $ CSCompatibilityMode )将其激活,为用户在会议中实现控制启动 / 禁用兼容模式。这个特别的 ini 参数将有 4 个设置支持选项:
- 设置 $CSCompatibilityMode=0, 复选框不可见 , 兼容模式不可使用。在 Lotus Notes 8.5 中这是默认设置。
- 设置 $CSCompatibilityMode=1,复选框可见 , 兼容模式为默认选择模式。该选项默认开启,可手动将其关闭。
- 设置 $CSCompatibilityMode=2,复选框可见 , 兼容模式为默认选择模式。该选项默认关闭,可手动将其开启。
- 设置 $CSCompatibilityMode=3, 复选框可见 , 兼容模式为默认锁定模式。该选项默认并锁定开启,不可手动选择关闭 / 开启。
通过选中 Some invitees use other mail programs 选项,用户可以向以下邮件程序的用户发送邀请:
- Outlook 2003/Exchange 2003
- Outlook 2007/Exchange 2007
- Outlook 2003/Exchange 2007
- Outlook 2003/Gmail (POP 3)
- Outlook 2007/Gmail (POP 3)
通过安装 Louts Notes 8.5, 最终用户可以选择设置将 Notes 作为一个默认的日历处理程序 , 这在以前是不可能的。从而在操作系统中或者邮件文档可以通过双击 *.ics 文件以将 ics 文件中的日历项以增加日历的方式罗列在当前用户的日历中 , 或者直接导入当前用户的日历中。
在 Lotus Notes 8.5 安装过程中 ,最终用户在 "Ready to install the program" 安装向导窗口中可以看见三个选项。默认都为选中。其中一个选项是 "Make Notes my default calendar program". 如图 3 所示。
此选项将 ics 文件与 Lotus Notes 应用程序相关联。 Ics 文件图标将由 Outlook 图标变更为 Notes 图标。当标记 Notes 为默认的日历应用程序来处理 ICS 文件时,无论 ics 文件位置是在操作系统内还是在邮件文档内,Notes 都可以识别并处理 ics 文件。
对于处理 PUBLISH 类型的 ics 文件。无论是 ics 存在于操作系统(例如,桌面)还是邮件文档中,我们都可双击打开,并且有两种选择 , 导入至当前日历或是添加到日历中。
对于处理 WORKFLOW 类型的 ics 文件。无论是 ics 存在于操作系统(例如,桌面)还是邮件文档中,我们都可双击打开,Workflow ics 直接被打开并且直接被处理,尤其是针对那种单一 workflow 条目的 ics 文件。
在 Lotus Notes 8.5 之前的版本中 , 为了处理 PUBLISH 数据类型的 ics 文件 . 用户不得不将这个 ics 文件导入日历视图里面来读取 calendar 数据,有时,导入的 ics 日历会与现有的用户日历产生冲突。这会给用户带来一定的不便。 Lotus Notes 8.5 版本则改进了导入日历视图的功能,通过实现“添加到日历” 的新功能来解决前一个版本出现的问题,解决用户的实际需求。
在 Lotus Notes 8.5 中 , 如何处理 PUBLISH data 类型的 ics 文件呢?当前 Lotus Notes 8.5 有两种方法导入处理 PUBLISH 类型的 ics 文件,一种是导入模式,导入模式就是将 ics 文件直接导入用户的日历视图,从而使用户可以直接在日历视图中查询导入日历。但是导入模式有一个缺点,就是当导入过多的 PUBLISH 类型的 ics 文件后,如果导入的日历与已经存在的个人日历占用相同的时间槽,那么用户有可能会与已经存在的个人日历视图混淆 , 不方便用户快速查询。第二种方式就是 Lotus Notes 8.5 的新功能“添加到日历”模式,添加到日历模式就是将 ics 文件导入日历导航器“ Show Calendars ”视图。(“ Show Calendars ”视图是 Lotus Note 8.5 引入联合日历这一全新概念的具体体现)。该模式将把要导入的 ics 文件以标签的形式放入“ Show Calendars ”中,该 ics 文件中包含的日历项不会直观的在日历视图里面体现,而只有当用户选取此标签,相应的日历项才会在日历视图中显示。添加到日历模式不会覆盖已有的 calendar 日历文档。最终用户可以选择适合的方式进行 ics 日历导入,以满足业务需求。
一旦我们将 Notes 作为默认日历处理程序后,当最终用户双击 PUBLISH 数据类型的 ics 文件,将会弹出单项选择对话框。 “导入这些日历条目到您的个人日历中”或是“将该日历添加到您的显示日历列表中”选项 ,如图 4 所示。
图 4. Add to Calendar 或 Import 选项
导入
如果最终用户选择“ Import these entries into your personal calendar ”选项,“导入”对话框将会弹出如图 5 所示 。一个缺省的名字将出现在 calendar name 字段中。
点击“确定”按扭 ,弹出导入成功对话框如图 6 所示。 ics 中所有的日历条目将成功的导入到最终用户的个人日历,最终用户可以在日历视图中看见它们。
如果最终用户选择“ Add this calendar to your Show Calendars list ”选项 ,“添加日历”对话框将会弹出的如图 7 所示。
最终用户需要输入 iCalendar Feed 标签(文件路径自动填充)。此外,最终用户可以设置日历条目在导航器中所显示的颜色,比如背景颜色和文字颜色。如果最终用户希望查看离线日历条目,在此对话框中必须点选“ View this calendar when offline or on a mobile device ”选项。点击“确定”,提示增加日历成功的对话框弹出。见图 8 。
当增加日历操作完成后,这个已增加的日历将会作为一个独立的条目出现在日历视图里面的“ Show calendar ”列下,如图 9 所示。并且最终用户能够去选择是否显示或隐藏该条目下的其相关事件(会议,日历等), 选择增加日历导入方式的好处在于,不会嵌入用户已有日历视图并不干涉用户当前日程操作,可以为用户在同一日历视图里选择查看不同日历事件。
当用户需要导入一个类型为 workflow 的 ICS 文件时,如果这个 ICS 文件内容里面包含的只是单一的 workflow 事件,这将作为一个日历邀请直接导入到用户的收件箱和日历中 , 并且用户可以直接在此上进行操作(同意或拒绝),如果这个 ICS 文件内容里面包含多个的 workflow 事件,将弹出导入对话框,用户可以根据自己的需求提取事件到日历表中,见(图 10)。
图 10. “ Multiple Calendar Entries in ICS file ” 对话框
让我们来看一个应用上的案例。在一个公司里面,一个使用 Notes 办公的研发人员萨曼莎,向一个使用了 outlook 办公的市场营销人员马克发出了一个会议邀请,萨曼莎希望马克能够收到会议邀请并执行各种操作 , 以便她能知道马克能否出席会议。马克也同样希望在 outlook 上能如同 Notes 一般对会议邀请执行各种操作,从而不必担心会遗漏掉什么重要信息,这需要 icalendar 的支持。当然,萨曼莎需要在 Lotus Notes 8.5 的客户端中设定 iCalendar 环境。
首先,萨曼莎必须确保 Domino 服务器中 SMTP 服务是开启状态。如图 11 所示,她需要选择 Server Tasks – SMTP Server – Listen for connect requests on TCP Port 25 。
图 11. Lotus Domino 服务器中的 SMTP 服务已启动
接下来,萨曼莎在她的 Notes 客户端创建一个 SMTP 帐户,如图 12 所示。她需要遵循以下步骤:
- 联系人数据库,选择“高级” 帐户 新建 帐户
- 填写帐户名,可以为任意字符 ;(我们暂且输入 test smtp)
- 填写帐户服务器名称。例如,Domino server1 上启动了 SMPT 服务,在这里输入 Domino server1 的主机名称 ;
- 选择“ SMTP ”协议 ;
- 在 SSL 域中 ,我们使用默认“禁用”选项 ;
- 在 Only from location(s) 域中,我们使用默认“ * ”选项。
最后,萨曼莎需要在 Notes 8.5 客户端上配置关于 icalendar 的 Location 文档,她需要遵循以下步骤:
- 创建一个关于 icalendar 的独立 Location 文档 ;
- 在“ Mail ”标签,设置 Send outgoing mail 域为“ Direct to internet ” ;
- 在 Internet domain for Notes addresses when connecting directly to the Internet: 域中输入已经启动 SMTP 服务的主机名称或 IP;
- 点击“保存”。
图 13. 创建 icalendar Location 配置文档
当配置完成后,萨曼莎就能够与马克进行 iCalendar 交互了,例如发送会议邀请函,安排会议时间日程等任务。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14751907/viewspace-591921/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14751907/viewspace-591921/