SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы
Назад
#!/usr/bin/env python3
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import formataddr
def send_notify(email, body):
msg = MIMEMultipart()
msg['From'] = formataddr((app.config['EMAIL_FROM'], app.config['EMAIL_HOST_USER']))
msg['To'] = ", ".join([email])
msg['Subject'] = app.config['EMAIL_FROM']
msg.attach(MIMEText(body, 'html'))
app.logger.info(msg)
try:
smtpObj = None
smtpObj = smtplib.SMTP(
app.config['EMAIL_HOST'],
port=app.config['EMAIL_PORT']
)
app.logger.info(smtpObj.ehlo())
if app.config['EMAIL_USE_TLS']:
smtpObj.starttls()
smtpObj.login(app.config['EMAIL_HOST_USER'], app.config['EMAIL_HOST_PASSWORD'])
app.logger.info(msg)
smtpObj.send_message(msg)
smtpObj.quit()
app.logger.info("Письмо успешно отправлено")
except (smtplib.SMTPAuthenticationError,
smtplib.SMTPConnectError,
smtplib.SMTPDataError,
smtplib.SMTPException,
smtplib.SMTPHeloError,
smtplib.SMTPRecipientsRefused,
smtplib.SMTPResponseException,
smtplib.SMTPSenderRefused,
smtplib.SMTPServerDisconnected) as e:
app.logger.error("Ошибка доставки письма")
print(e.message)