Добавить в корзинуПозвонить
Найти в Дзене
Михаил Плотников

Отправка сообщений на email из кода Python

Понадобилось мне уведомлять пользователей по результатам работы кода python на email. Для решения я воспользовался SMTP-сервером Google, чтобы отправлять письма со своего аккаунта. ВАЖНО!
Перед тем как отправлять письма из кода, вам необходимо разрешить доступ ненадежные приложениям (чем и является ваш код) Сделать это можно в разделе безопасности по ссылке, авторизовавшись под своим аккаунтом Google - https://myaccount.google.com/security и в пункте "Ненадежные приложения, у которых есть доступ к аккаунту" поставить галочку После чего вы сможете отправлять email из кода python. Пример кода: import smtplib
from email.mime.text import MIMEText
from email.header import Header
gmail_user = 'ВАША ПОЧТА'
gmail_password = 'ПАРОЛЬ ОТ ПОЧТЫ'
to = ['ПОЛУЧАТЕЛЬ1']
msg = MIMEText('ВАШ ТЕКСТ', 'plain', 'utf-8')
msg['Subject'] = Header('ТЕМА СООБЩЕНИЯ', 'utf-8')
msg['From'] = gmail_user
msg['To'] = ", ".join(to)
smtp_server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
smtp_server.ehlo()
smtp_serve

Понадобилось мне уведомлять пользователей по результатам работы кода python на email. Для решения я воспользовался SMTP-сервером Google, чтобы отправлять письма со своего аккаунта.

ВАЖНО!
Перед тем как отправлять письма из кода, вам необходимо разрешить доступ ненадежные приложениям (чем и является ваш код)

Сделать это можно в разделе безопасности по ссылке, авторизовавшись под своим аккаунтом Google - https://myaccount.google.com/security и в пункте "Ненадежные приложения, у которых есть доступ к аккаунту" поставить галочку

После чего вы сможете отправлять email из кода python. Пример кода:

import smtplib
from email.mime.text import MIMEText
from email.header import Header

gmail_user = 'ВАША ПОЧТА'
gmail_password = 'ПАРОЛЬ ОТ ПОЧТЫ'
to = ['ПОЛУЧАТЕЛЬ1']
msg = MIMEText('ВАШ ТЕКСТ', 'plain', 'utf-8')
msg['Subject'] = Header('ТЕМА СООБЩЕНИЯ', 'utf-8')
msg['From'] = gmail_user
msg['To'] = ", ".join(to)
smtp_server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
smtp_server.ehlo()
smtp_server.login(gmail_user, gmail_password)
smtp_server.sendmail(
gmail_user, to, msg.as_string())
smtp_server.close()

Уточнения

1. Не забудьте установить недостающую библиотеку smtplib командой

pip install smtplib

в терминале

2. В переменной "to" можно указать список получателей через ","

3. Тему и текст письма можно передавать с использованием f-строк. Подробней о них хорошо написано тут