Как в модуле smtplib отправлять письма по порту 465?
Подскажите, что я делаю не так? Получаю ошибку:
smtplib.SMTPResponseException: (500, b'5.5.1 Invalid command')
Вот мой код:
#импорт библиотек для отправки электронных писем
import smtplib
from smtplib import SMTP_SSL as SMTP
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email import encoders
#отправка заполненной формы электронным письмом
from_addr = "user1@user.com"
password = "***************"
to_addr = "user2@user.com"
msg = MIMEMultipart()
msg['From'] = from_addr
msg['To'] = to_addr
msg['Subject'] = "Тема письма"
body = "Тут письмо со вложением"
msg.attach(MIMEText(body, 'plain'))
filename = "письмо.docx"
attachment = open("письмо.docx", "rb")
part = MIMEBase('application', 'octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', "attachment; filename= %s" % filename)
msg.attach(part)
smtp_ssl_obj = smtplib.SMTP_SSL("server.smtp.com", 465)
smtp_ssl_obj.starttls()
smtp_ssl_obj.login(from_addr, password)
text = msg.as_string()
smtp_ssl_obj.sendmail(from_addr, to_addr, text)
smtp_ssl_obj.quit()
Источник: Stack Overflow на русском