Python,转发和修改outlook电子邮件,同时保持格式设置

2024-06-08 03:49:50 发布

您现在位置:Python中文网/ 问答频道 /正文

新的平台上,我想转发一封电子邮件到几个地址。我没有找到一种方法来保持格式并添加一些内容。实际上,在电子邮件中,我有文字(粗体、普通、彩色),但也有图片。 我试过两种方法: -将邮件保存在文件夹(.msg)中并对其进行解析,但格式仅为文本 -直接从收件箱转发,格式很好,但如果我修改它,问题与第一种方式相同

最后一个问题,我找不到删除转发头的方法

def Emailer(text, subject, recipient):

    outlook = win32.Dispatch('outlook.application')
    mail = outlook.CreateItem(0)
    mail.To = recipient
    mail.Subject = subject
    mail.HTMLBody = text
    Path_Att = "D:/***/Test123.pdf"
    mail.Attachments.Add(Source=Path_Att)
    mail.Display(True)



import extract_msg

#f = r'D:\***\test13.msg' 
msg = extract_msg.Message(f)
msg_sender = msg.sender
msg_date = msg.date
msg_subj = msg.subject
msg_message = msg.body

Text_email = msg_message
Emailer(Text_email,'Our Research','xxx@xxx.com')

outlook = win32.Dispatch("Outlook.Application").GetNamespace("MAPI")

inbox = outlook.GetDefaultFolder(6).Folders('Hugues')
messages = inbox.Items
message = messages.GetLast()
NewMsg = message.Forward()
TestSub = NewMsg.Subject
print(type(NewMsg.Body))
NewMsg.Body = 'Hello' + NewMsg.Body
NewMsg.Subject = TestSub.replace('FW: ','')
NewMsg.To = "xxxx@xxx.com"
NewMsg.Display(True)

谢谢你的帮助


Tags: 方法textmessage格式bodymailmsgxxx
1条回答
网友
1楼 · 发布于 2024-06-08 03:49:50

要保留任何消息正文格式,您需要处理HTMLBody或Word对象模型,其中正文由Document类表示。在上面列出的代码中,您处理的是纯文本字符串:

NewMsg.Body = 'Hello' + NewMsg.Body

即使设置了HTMLBody属性:

mail.HTMLBody = text

您应该在和元素中添加任何文本,以保留现有格式并保持HTML文档格式良好

相关问题 更多 >

    热门问题