我正在使用exchangelib连接到交流和回复电子邮件。但是在发送回复时,它不支持附件。
根据this answer,我必须“创建一个普通的邮件项目,其标题为“ Re:some subject”,包含附件,并在需要时引用原始邮件。”
但是我不确定如何“引用”原始消息
我正在使用以下代码进行回复:
从pathlib导入路径 从exchangelib导入消息,帐户,文件附件
account = Account(...)
item = ...
file_to_attach = Path('/file/to/attach.txt')
message = Message(
account=account,
subject="Re: " + item.subject,
body="This is reply by code",
cc_recipients=item.cc_recipients,
to_recipients=[item.sender],
in_reply_to=item.id,
conversation_id=item.conversation_id,
)
with file_to_attach.open('rb') as f:
content = f.read()
message.attach(FileAttachment(name=file_to_attach.name, content=content))
message.send_and_save()
它会发送带有附件的电子邮件,但不会保留原始邮件的回复内容,而是新邮件,而不是回复邮件。也不会在gmail中显示为会话
我可能在这里缺少一些小东西。请建议如何解决此问题
答案 0 :(得分:1)
花了更多时间寻找解决方案后,我在C#中找到了this答案,使用它我可以实现以下解决方案:
attachment = FileAttachment(name=file_name, content=f.read())
reply = item.create_reply("Re: " + item.subject, "THIS IS REPLY FROM CODE" )
msg = reply.save(account.drafts)
msg.attach(attachment)
msg.send()
希望这可以帮助其他人寻找类似问题的解决方案。