Требуется отправить письмо с вложением. Почитал документацию, полазил по форуму, попробовал.
Сразу же выяснилось: вся документация в подавляющем большинстве относиться к версии 2Х, тут же появились проблемы по подключению соответствующих модулей и с кодировкой (отдельное спасибо Андрею Светлову за помощь в решении проблем с кодировкой).
в результате получилось следующее:
# -*- coding: utf-8 -*-
from smtplib import SMTP
from email.header import Header, make_header
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email.mime.application import MIMEApplication
from email.encoders import encode_base64
import os
russian = ‘windows-1251’
msg = MIMEMultipart()
msg = make_header()
msg = make_header()
msg = Header(“прЮвет”, russian)
m = “”“привет от Васи”“”
text = MIMEText(m.encode('cp1251'), ‘plain’, russian)
msg.attach(text)
fp = open(“D:\\Temp\\aa.cdr”, “rb”)
to_attach = MIMEBase(“application”, “octet-stream”)
to_attach.set_payload(fp.read())
encode_base64(to_attach)
to_attach.add_header(“Content-Disposition”, “attachment”, filename=“dfdfd”)
msg.attach(to_attach)
fp.close()
fromaddr = “fromuser@aa.aa.ru”
toaddr = “touser@bb.bb.ru”
connect = SMTP('XX.XX.XX.XX')
connect.set_debuglevel(1)
connect.sendmail(fromaddr, toaddr, msg.as_string())
connect.quit()
В данном примере не работает блок с прикреплением постороннего файла, выдаёт что-то типа
raise TypeError('string payload expected: %s' % type(payload))
eError: string payload expected: <class ‘bytes’>
А хотелось бы прикреплять файлы (как текстовые так и бинарные). в общем прошу помочь :)