Вы добавляете Content-Disposition:
в составной контейнер. Вы должны добавить его к каждой отдельной части тела.
Измените это:
for file_path in file_paths :
temp_arr = file_path.split('/')
file_name = temp_arr[len(temp_arr) - 1]
msg.add_header('Content-Disposition', 'attachment', filename=file_name)
fp = open(file_path, 'rb')
attachment = MIMEBase(maintype, subtype)
attachment.set_payload(fp.read())
fp.close()
encode_base64(attachment)
msg.attach(attachment)
на что-то вроде
for file_path in file_paths:
file_name = file_path.split('/')[-1]
attachment = MIMEBase(maintype, subtype)
with open(file_path, 'rb') as fp:
attachment.set_payload(fp.read())
attachment.add_header('Content-Disposition', 'attachment', filename=file_name)
encode_base64(attachment)
msg.attach(attachment)
, где я также позволил себе переключиться на использование менеджер контекста (оператор with
). Я также упростил извлечение имени файла.