Как я могу отправить вложения в ответ по электронной почте?

Я использую пакет exchangelib для подключения к Exchange. Мне нужно отправить вложения в ответ. Когда я отправляю обычное сообщение, я добавляю вложение к объекту сообщения следующим образом:

message = Message()
message.account = account
message.subject = 'subject'
message.body = 'text'
message.to_recipients = [Mailbox(email_address='[email protected]')]
message.cc_recipients = ['[email protected]']

for attachment in attachments or []:
    with open(attachment['path'], 'rb') as f:
        file = FileAttachment(name=attachment['file_name'], content=f.read())
        message.attach(file)

и отправить ответ:

reply = message.reply(
    subject='Re: subject',
    body='texto',
    to_recipients=['[email protected]']
)

Это работает, но я не знаю, как добавить вложения в ответ. Я попытался установить атрибуты «вложения» и «прикрепить», но у объекта их нет.


person JPerez    schedule 03.10.2018    source источник


Ответы (1)


Метод Message.reply() создает и отправляет элемент ReplyToItem, который не поддерживает вложения. См. https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/replytoitem

Поэтому, если вы хотите отправить ответ с вложениями, просто создайте обычный элемент сообщения с заголовком 'Re: some subject', содержащим вложение и цитируя исходное сообщение, если это необходимо.

person Erik Cederstrand    schedule 05.10.2018
comment
Привет @Erik Cederstrand, не могли бы вы дать мне пример кода, как процитировать исходное сообщение? У меня также есть требование отправить вложение с ответом - person mry; 07.04.2019
comment
Вы можете использовать любой стиль цитирования, который вам нравится в ответах по электронной почте. Несколько примеров можно найти на странице en.wikipedia.org/wiki/Posting_style. Вам придется создать текстовое сообщение самостоятельно. Прикрепление файлов к сообщению описано на github.com/ecederstrand/exchangelib#attachments. - person Erik Cederstrand; 08.04.2019