Отправить электронное письмо на Python

Чтобы отправить электронное письмо с помощью Python, используйте следующие функции из библиотеки smtplib.

  • SMTP(SMTP_SERVER, SMTP_PORT) - создает сеанс SMTP в соответствии с данными SMTP-сервера и порта SMTP.
  • starttls() - запустить TLS для настройки безопасности.
  • login(SMTP_USERNAME, SMTP_PASSWORD) - для предоставления аутентификационных данных отправителя электронной почты.
  • sendmail(EMAIL_FROM, EMAIL_TO, the_message) - для отправки сообщения от Отправителя к Получателю.
  • quit() для выхода из SMTP-сессии.

Вот пример, демонстрирующий отправку почты через SMTP-сервер Gmail.

import smtplib

SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587
SMTP_USERNAME = "sender_username_here@gmail.com"
SMTP_PASSWORD = "sender_password_here"
EMAIL_FROM = "sender_username_here@gmail.com"
EMAIL_TO = "receiver_username_here@gmail.com"
EMAIL_SUBJECT = "Attention:Subject here"
EMAIL_MESSAGE = "The message here"

s = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
s.starttls()
s.login(SMTP_USERNAME, SMTP_PASSWORD)
message = 'Subject: {}\n\n{}'.format(EMAIL_SUBJECT, EMAIL_MESSAGE)
s.sendmail(EMAIL_FROM, EMAIL_TO, message)
s.quit()

Выход может выглядеть следующим образом в соответствии с подключением, созданным в этой точке в вашей системе:

(221, b'2.0.0 closing connection t12sm4676768pfc.133 - gsmtp')

В результате письмо отправлено. Получатель успешно получил сообщение.

Примечание:

  • В случае Gmail укажите следующие данные SMTP:
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587

Кроме того, перед выполнением кода в Gmail необходимо включить следующие настройки.

https://myaccount.google.com/lesssecureapps
  • В случае Yahoo Mail укажите следующие данные SMTP:
SMTP_SERVER = "smtp.mail.yahoo.com"
SMTP_PORT = 587

Кроме того, перед выполнением кода сгенерируйте Yahoo Пароль приложения. Проверьте ссылку ниже.

https://help.yahoo.com/kb/generate-separate-password-sln15241.html

  • Точно так же, если вы хотите использовать любого другого почтового провайдера, используйте его соответствующие данные SMTP-сервера и предварительные условия.