Bootstrap

使用 win32com 库与 Outlook 进行交互

1. 安装 pywin32

如果尚未安装 pywin32,使用 pip 安装:

pip install pywin32

2. 导入 win32com.client

import win32com.client

3. 连接到 Outlook 应用程序

outlook = win32com.client.Dispatch('Outlook.Application')

4. 获取邮件命名空间

namespace = outlook.GetNamespace('MAPI')

5. 操作邮件

创建新邮件
mail = outlook.CreateItem(0)  # 0 代表邮件项(olMailItem)
设置邮件属性
mail.Subject = 'Test Subject'  # 邮件主题
mail.Body = 'Hello, this is a test email.'  # 邮件正文
mail.To = '[email protected]'  # 收件人地址
附加文件(如果需要)
# mail.Attachments.Add('C:\\path\\to\\your\\file.txt')
发送邮件
mail.Send()

6. 读取邮件

获取收件箱文件夹
inbox = namespace.GetDefaultFolder(6)  # 6 代表收件箱(olFolderInbox)
搜索邮件
messages = inbox.Items
search_filter = "[Subject]='Test Subject'"  # 搜索主题为 "Test Subject" 的邮件
messages.Restrict(search_filter)
遍历邮件
for message in messages:
    print(f"Subject: {message.Subject}")
    print(f"From: {message.SenderEmailAddress}")
    # 根据需要获取其他属性

7. 删除邮件

# message.Delete()  # 删除当前邮件

8. 管理日历事件(可选)

创建日历事件
calendar = namespace.GetDefaultFolder(9)  # 9 代表日历(olFolderCalendar)
meeting = calendar.Items.Add('IPM.Appointment.Meeting')
设置事件详情
meeting.Subject = 'Team Meeting'
meeting.Start = datetime.datetime(2023, 7, 24, 10, 0)  # 开始时间
meeting.End = datetime.datetime(2023, 7, 24, 11, 0)    # 结束时间
meeting.Location = 'Conference Room'
meeting.Body = 'Discuss project updates.'
保存并发送会议请求(如果需要)
meeting.Recipients.Add('[email protected]')
meeting.Recipients.Add('[email protected]')
meeting.Send()

9. 清理资源

del outlook

示例代码

以下是一个使用 win32com 库发送邮件的完整示例:

import win32com.client
from datetime import datetime

# 连接到 Outlook COM 对象
outlook = win32com.client.Dispatch('Outlook.Application')

# 创建新邮件
mail = outlook.CreateItem(0)  # olMailItem

# 设置邮件属性
mail.Subject = 'Test Subject'
mail.Body = 'Hello, this is a test email.'
mail.To = '[email protected]'

# 发送邮件
mail.Send()

# 清理资源
del outlook
;