提问人:Venkatesh Kumar M 提问时间:11/16/2016 最后编辑:Venkatesh Kumar M 更新时间:11/18/2023 访问量:9486
如何使用以下代码使用 Python 为同一发件人回复 Outlook 电子邮件?
how i can reply to outlook email using python for the same sender by using below code?
问:
我正在尝试像手动一样回复 Outlook 电子邮件,它与以前的对话一起进行。但是下面的代码给出了一些错误:无法发送到收件人地址。我需要知道如何将其发回给我发送电子邮件的人。
import win32com.client, datetime
from datetime import timedelta
outlook =win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") # to trigger outlook application
inbox = outlook.GetDefaultFolder(6) # 6 is used for the index of the folder
messages = inbox.Items
message = messages.GetLast()# message is treated as each mail in for loop
for message in messages:
if message.Subject=="request": # based on the subject replying to email
#body_content = message.body
message.Reply()
message.Body = "shortly will be processed!!!"
message.Send()
答:
0赞
Oliver
11/17/2016
#1
回复是 reply() 返回的 MailItem。所以试试这个:
reply = message.Reply()
reply.Body = "shortly will be processed!!!"
reply.Send()
评论
0赞
Venkatesh Kumar M
11/17/2016
谢谢,它没有任何错误,但它的回复没有反映以前的对话,我的意思是,回复的消息应该附在我回复之前收到的邮件中。
0赞
Oliver
11/17/2016
我从未见过 outlook 通过点击回复来做到这一点,所以 COM 端也不会。除非您的意思是原始电子邮件的文本应该出现在回复中。您拥有原始邮件,因此您可以轻松地将其作为附件添加到回复中,或将其文本和标题信息复制到电子邮件中。无论哪种方式,这都超出了原始问题,因此您应该将其标记为已回答,尝试我的建议,如果您无法获得想要的内容,请发布一个新问题。
0赞
Akhil
9/17/2019
#2
继续上面的答案
全部回复:
`rplyall=message.ReplyAll()`
要反映以前的对话,请执行以下操作:
`rplyall.Body="your message here"+rplyall.Body()`
`rplyall.Send()`
0赞
KevinST
7/30/2021
#3
由于 MailItem.Body 是一个 String,并且它是不可调用的。参考文件我认为@Akhil的正确代码是
rplyall.Body = "your message here" + rplyall.Body
rplyall.Send()
评论