Как отправить электронную почту с помощью Python?

В этом руководстве по Python мы рассмотрим различные способы, которыми вы можете отправлять электронные письма с помощью Pythonвключая отправку без SMTP-сервера, без пароля и с помощью Outlook.
Отправка электронной почты с помощью SMTP-сервера с использованием Python
SMTP или Simple Mail Transfer Protocol — это стандартный протокол для отправки электронных писем. Вот как вы можете использовать Python для отправки электронной почты через SMTP-сервер:
Шаги:
Импортируйте библиотеку smtplib:
import smtplib
Настройте SMTP-сервер:
Для Gmail:
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
Для Яху:
server = smtplib.SMTP('smtp.mail.yahoo.com', 587)
server.starttls()
Войдите в свою учетную запись электронной почты:
server.login('your_email@example.com', 'your_password')
Отправить письмо:
server.sendmail('your_email@example.com', 'recipient_email@example.com', 'Hello, this is a test email.')
Закройте сервер:
server.quit()
Отправка электронной почты без SMTP-сервера
Отправка электронной почты без SMTP-сервера в Python предполагает создание прямого сеанса SMTP с почтовым сервером получателя. Будь осторожен; этот метод может привести к тому, что ваша электронная почта будет помечена как спам.
Импортируйте библиотеки:
import smtplib, dns.resolver
Найдите MX-запись домена получателя:
domain = 'example.com'
records = dns.resolver.resolve(domain, 'MX')
mx_record = records[0].exchange
Установите прямую SMTP-сессию:
server = smtplib.SMTP(mx_record, 25)
Отправить письмо:
server.sendmail('your_email@example.com', 'recipient_email@example.com', 'Hello, this is a test email.')
Закройте сервер:
server.quit()
Отправка электронной почты без пароля
Этот метод не рекомендуется, так как он менее безопасен. Однако, если у вас есть пароль для приложения или почтовый сервер, не требующий аутентификации, вы можете использовать этот метод:
Настройте SMTP-сервер:
server = smtplib.SMTP('smtp.example.com', 587)
server.starttls()
Отправить письмо:
server.sendmail('your_email@example.com', 'recipient_email@example.com', 'Hello, this is a test email.')
Закройте сервер:
server.quit()
Отправка электронной почты Outlook с помощью Python
Вы также можете отправлять электронные письма через Outlook, используя его SMTP-сервер в Python.
Настройте SMTP-сервер Outlook:
server = smtplib.SMTP('smtp.office365.com', 587)
server.starttls()
Войдите в свою учетную запись Outlook:
server.login('your_outlook_email@example.com', 'your_password')
Отправить письмо:
server.sendmail('your_outlook_email@example.com', 'recipient_email@example.com', 'Hello, this is a test email.')
Закройте сервер:
server.quit()
Заключение
Отправка электронных писем через Python — удобный инструмент для автоматизации общения. Независимо от того, используете ли вы SMTP-сервер, отправляете сообщения без SMTP-сервера или пароля или используете Outlook, Python поможет вам.
Вам также может понравиться:

Я Биджай Кумар, Microsoft MVP в SharePoint. Помимо SharePoint, последние 5 лет я начал работать над Python, машинным обучением и искусственным интеллектом. За это время я приобрел опыт работы с различными библиотеками Python, такими как Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn и т. д. для различных клиентов в США, Канаде, Великобритании, Австралии, Новая Зеландия и т. д. Проверьте мой профиль.
Ссылка на источник