Как отправить несколько вложений электронной почты с одним и тем же именем файла без переименования в Python?Python

Программы на Python
Anonymous
Как отправить несколько вложений электронной почты с одним и тем же именем файла без переименования в Python?

Сообщение Anonymous »

Я использую email.message.EmailMessage и aiosmtplib Python для отправки автоматических электронных писем. Мое требование — прикрепить несколько файлов с точным одинаковым именем (полученных из разных исходных папок).
Проблема:

Несмотря на то, что я вызываю add_attachment() несколько раз в цикле, получатель (просмотр в Gmail) видит только одно вложение. Кажется, Gmail перезаписывает первый файл вторым, потому что у них одно и то же имя.
Мой фрагмент кода:

Код: Выделить всё

from email.message import EmailMessage
import aiosmtplib

msg = EmailMessage()
msg["Subject"] = "Reports"
msg["From"] = "sender@gmail.com"
msg["To"] = "receiver@gmail.com"

# Example of how I attach files
files_to_attach = [
{"path": "folder1/report.pdf", "name": "report.pdf"},
{"path": "folder2/report.pdf", "name": "report.pdf"}
]

for file in files_to_attach:
with open(file["path"], 'rb') as f:
msg.add_attachment(
f.read(),
maintype='application',
subtype='octet-stream',
filename=file["name"]
)

# Sending via aiosmtplib
# await aiosmtplib.send(msg, ...)
Вопрос:

Есть ли способ заставить почтовые клиенты, такие как Gmail, отображать оба вложения без изменения атрибута имени файла? Есть ли MIME-заголовок или трюк со «скрытым символом», который подойдет для этого?

Вернуться в «Python»