python outlook reply email with

2021-04-22  本文已影响0人  次第阑珊

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)
# 内容果然在

果断把新旧内容拼接

The End

上一篇下一篇

猜你喜欢

热点阅读