Проблема:
Несмотря на то, что я вызываю 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-заголовок или трюк со «скрытым символом», который подойдет для этого?