公司的会议预订系统使用Outlook,要读取这些预订记录传到部署在阿里云的数据库。Exchange服务器没办法从外网访问,就在内网某台机器上写了一个脚本,定时执行,来从Outlook中读取日历上的预订记录。
模块:pywin32 (http://sourceforge.net/projects/pywin32/)
环境:Windows 2008 + Outlook 2013 + Python 2.7.8
Filder & Items
因为从来没做过Windows开发,所以先看了一遍文档,主要的概念是Folder(https://msdn.microsoft.com/EN-US/library/ff866772.aspx)。
所以其实就是要读取Outlook中名为Calendar的Folder,要获得会议预订记录,取出Folder的Items进行迭代就可以了:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import datetime
import win32com.client
namespace = win32com.client.Dispatch('Outlook.Application').GetNamespace('MAPI')
if __name__ == '__main__':
calendar = namespace.GetDefaultFolder(9)
for item in calendar.Items:
print(item.Subject