Настраиваю корпоративную рассылку писем. В почтовых ящиках в браузере все данные доходят отлично, вместе с файлами. Но в outlook все файлы приходят с непонятными названиями и в формате .dat.
Понятно, что все дело в форматах Microsoft, но не ясно что с этим делать.
Вот код отправки письма:
def save(self, *args, **kwargs):
msg = MIMEMultipart()
msg["Subject"] = self.title
msg["From"] = self.employee.email
msg["To"] = self.to
msg.attach(MIMEText(self.text, "html"))
# получаем список файлов действвия и добавляем их в сообщение
for f in self.action.document_set.filter(non_relevant=False):
path = os.path.join(MEDIA_ROOT, f.file.path)
attachment = MIMEApplication(open(path, "rb").read(), _subtype=f.file.name.split(".")[-1])
attachment.add_header('Content-Disposition', 'attachment', filename=f.filename)
msg.attach(attachment)
s = smtplib.SMTP_SSL('smtp.yandex.ru', 465)
s.ehlo(self.employee.email)
s.login(self.employee.email, self.employee.email_pass)
senders = s.sendmail(self.employee.email, [self.to], msg.as_string())
s.quit()
if senders != {}:
raise MailNotSendException
return super(Mail, self).save(*args, **kwargs)
Я нашел информацию о том, что чтобы такого как у меня не происходило, нужно отправлять письмо в формате HTML (что я вроде и так делаю).
Что я делаю не так?