В этом руководстве по Python мы рассмотрим различные способы отправки электронных писем с использованием Python. Вы узнаете, как отправлять письма без использования SMTP-сервера, без необходимости вводить пароль и даже с помощью программы Outlook.
С помощью SMTP-сервера
SMTP (Simple Mail Transfer Protocol) — это стандартный протокол для отправки электронной почты. Вот как вы можете использовать Python для отправки электронных писем через SMTP-сервер.
Шаги:
- Импортируйте библиотеку smtplib.
import smtplib
- Настройте SMTP-сервер.
Для Gmail:
server = smtplib.SMTP('smtp.gmail.com', 587) server.starttls()
Для yahoo:
server = smtplib.SMTP('smtp.mail.yahoo.com', 587) server.starttls()
- Войдите в свою учетную запись электронной почты.
server.login('[email protected]', 'your_password')
- Отправить письмо.
server.sendmail('[email protected]', '[email protected]', 'Hello, this is a test email.')
- Закройте сервер.
server.quit()
Без SMTP-сервера
Если вы отправляете электронную почту в Python без использования SMTP-сервера, вам нужно будет установить прямое соединение с почтовым сервером получателя через 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('[email protected]', '[email protected]', 'Hello, this is a test email.')
- Закройте сервер.
server.quit()
Отправка электронной почты без пароля
Этот метод менее безопасен, поэтому не рекомендуется. Однако если у вас есть пароль для конкретного приложения или сервера электронной почты без необходимости аутентификации, вы можете воспользоваться этим методом.
- Настройте SMTP-сервер.
server = smtplib.SMTP('smtp.example.com', 587) server.starttls()
- Отправить письмо.
server.sendmail('[email protected]', '[email protected]', 'Hello, this is a test email.')
- Закройте сервер.
server.quit()
Через Outlook
Вы также можете отправлять электронные письма через Outlook, используя его SMTP-сервер на Python.
- Настройте SMTP-сервер Outlook.
server = smtplib.SMTP('smtp.office365.com', 587) server.starttls()
- Войдите в свою учетную запись Outlook.
server.login('[email protected]', 'your_password')
- Отправить письмо.
server.sendmail('[email protected]', '[email protected]', 'Hello, this is a test email.')
- Закройте сервер.
server.quit()
Заключение
Отправка электронных писем через Python — удобный способ автоматизировать общение. Независимо от того, отправляете ли вы письма через SMTP-сервер, без него и пароля, или используете Outlook, Python поможет вам в этом.