python用win32API 回复邮件,回复时带上原邮件内容,就像在outlook里按快捷键[Ctrl+R].
先说结果。
import win32com.client
msg = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(6).itemsoutlook.GetLast()
reply=msg.Reply()
msg="Thanks for the information. Please attach logs"
""" generate new body, 内容只有msg"""
reply.Body = msg
"""body with orginal email content,邮件内容msg+回复自动生成的,注意顺序不要放反了"""
reply.Body=f"{msg}{reply.Body}"
reply.Send
有参考这个网址VBA_OULOOK,
没有有效信息
//reply
Sub M_snb()
With Application.GetNamespace("MAPI").GetDefaultFolder(6).Items(1).Reply
.Body = "dit is mijn antwoord"
.Send
End With
End Sub
//reply all
Sub M_snb()
With Application.GetNamespace("MAPI").GetDefaultFolder(6).Items(1).ReplyAll
.Body = "dit is mijn antwoord"
.Send
End With
End Sub
参考了官网API
其中,这句话启发了我
Return value
A MailItem object that represents the reply.
一个代表了回复对象的MailItem. 在outlook里手动回复的时候,默认不是会生成原邮件内容加from:,to:,subject等信息嚒。这个MailItem里是不是也包含了呢。
# 手动 print一下
print(reply.Body)
# 内容果然在
果断把新旧内容拼接