如何通过电子邮件回复发送附件



我正在使用exchangelib连接到交换和回复电子邮件。但是在发送回复时,它不支持附件。

根据这个答案,我必须"创建一个普通的消息项目,该项目具有"Re:某个主题"标题,包含附件,并引用原始消息(如果需要(。

但我不确定如何"引用"原始消息

我使用以下代码来回复:

从 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 中显示为对话

我可能在这里错过了一些小东西。 请建议如何解决此问题

在花了一些时间寻找解决方案后,我在 C# 中找到了这个答案,使用它我能够实现以下解决方案:

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()

希望这有助于其他人寻找类似问题的解决方案。

最新更新