может быть решение по этой ссылке:
Python имя файла вложения MIME по электронной почте
В основном, решение в соответствии с этим сообщением, измените это строка:
part.add_header('Content-Disposition', 'attachment; filename="%s"' % file)
в эту строку:
part.add_header('Content-Disposition', 'attachment', filename=AFileName)
Что сводится к последнему изменению:
#get all the attachments
for file in filenames:
part = MIMEBase('application', 'octet-stream')
part.set_payload(open(file, 'rb').read())
Encoders.encode_base64(part)
***part.add_header('Content-Disposition', 'attachment', filename=file)***
msg.attach(part)
Документация по использованию add_header
Надеюсь, это поможет! : D
Обновление
Имея это в вашем for l oop, вы должны получить имена файлов:
for file in filenames:
actual_filenames = os.path.basename(file)
#Your code
part.add_header('Content-Disposition', 'attachment', filename=actual_filenames)