Я создал функцию в Python 3.7 для создания черновиков электронных писем с прикрепленными электронными таблицами для всех клиентов.
Код создает этот черновик электронной почты правильно и присоединяет файлы (.xlsx), но эти файлы больше нельзя открыть в gmail. Не уверен, относится ли это к кодировке, которую я использую.
(Файлы могут быть успешно открыты на моем настольном компьютере)
Ниже приведен код:
def CreateMessageWithAttachment(sender, to, cc, subject, message_text, file_dir, filename):
"""Create email messages with attachment, for sending to partners"""
message = MIMEMultipart('alternative')
message['to'] = to
message['from'] = sender
message['cc'] = cc
message['subject'] = subject
msg = MIMEText(message_text, 'html')
message.attach(msg)
path = os.path.join(file_dir, filename)
content_type, encoding = mimetypes.guess_type(path)
if content_type is None or encoding is not None:
content_type = 'application/octet-stream'
main_type, sub_type = content_type.split('/', 1)
# main_type, sub_type = 'gzip', None
fp = open(path, 'rb')
msg = MIMEBase(main_type, sub_type)
msg.set_payload(fp.read())
fp.close()
msg.add_header('Content-Disposition', 'attachment', filename=filename)
message.attach(msg)
raw = base64.urlsafe_b64encode(message.as_bytes())
raw = raw.decode()
return {'raw': raw}
#return {'raw': base64.urlsafe_b64encode(message.as_bytes()).decode()}
Я предполагаю, что кодирование файлов - это то, что портит приложенные электронные таблицы. Любая помощь будет оценена.