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