Python win32com 使用“作为文本插入”方法附加文件到 Outlook

2 投票
1 回答
14526 浏览
提问于 2025-04-17 19:36

我正在尝试用 Python 的 win32com 库通过 Outlook 发送一个 HTML 网页。不过,我不知道怎么设置附件的调用,以便用“插入为文本”的方式来添加附件。

有没有人知道怎么做呢?

import win32com.client
from win32com.client import Dispatch, constants
const=win32com.client.constants

olMailItem = 0x0
obj = win32com.client.Dispatch("Outlook.Application")
newMail = obj.CreateItem(olMailItem)
newMail.Subject = "I AM SUBJECT!!"
newMail.Body = "I AM IN THE BODY\nSO AM I!!!"
newMail.To = "abc@abc.com"
attachment1 = "x:\\report.htm"

newMail.Attachments.Add(Source=attachment1)
newMail.display()
newMail.Send()

非常感谢。

1 个回答

7

你可以使用这个

import win32com.client
from win32com.client import Dispatch, constants
const=win32com.client.constants

olMailItem = 0x0
obj = win32com.client.Dispatch("Outlook.Application")
newMail = obj.CreateItem(olMailItem)
newMail.Subject = "I AM SUBJECT!!"

newMail.To = "abc@abc.com"
attachment1 = "x:\\report.htm"

with open(attachment1 , 'r') as myfile:
   data=myfile.read()

newMail.Body = "Please Find the Report here " + data

newMail.HTMLBody = "I AM IN THE BODY\nSO AM I!!!" + data
newMail.Attachments.Add(Source=attachment1)
newMail.display()
newMail.Send()

你可能需要先把html文件转换成字符串,然后再和邮件的内容合并在一起。

撰写回答