Простой протокол передачи почты (SMTP) — это протокол, который обрабатывает отправку электронной почты и маршрутизацию электронной почты между почтовыми серверами.
Python предоставляет модуль smtplib , который определяет объект сеанса клиента SMTP, который можно использовать для отправки почты на любой компьютер в Интернете с демоном слушателя SMTP или ESMTP.
У объекта SMTP есть метод экземпляра, называемый sendmail , который обычно используется для отправки сообщения по почте. Требуется три параметра —
-
Отправитель — строка с адресом отправителя.
-
Получатели — список строк, по одной для каждого получателя.
-
Сообщение — сообщение в виде строки, отформатированной так, как указано в различных RFC.
Отправитель — строка с адресом отправителя.
Получатели — список строк, по одной для каждого получателя.
Сообщение — сообщение в виде строки, отформатированной так, как указано в различных RFC.
пример
Вот простой способ отправить одно электронное письмо, используя скрипт Python. Попробуйте один раз —
#!/usr/bin/python3 import smtplib sender = '[email protected]' receivers = ['[email protected]'] message = """From: From Person <[email protected]> To: To Person <[email protected]> Subject: SMTP e-mail test This is a test e-mail message. """ try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender, receivers, message) print "Successfully sent email" except SMTPException: print "Error: unable to send email"
Здесь вы разместили в сообщении основную электронную почту, используя тройную кавычку, стараясь правильно отформатировать заголовки. Для электронного письма требуются заголовок « От» , « Кому» и « Тема» , отделенные от тела письма пустой строкой.
Для отправки почты вы используете smtpObj для подключения к SMTP-серверу на локальной машине. Затем используйте метод sendmail вместе с сообщением, адресом отправителя и адресом назначения в качестве параметров (хотя адреса отправителя и получателя находятся внутри самой электронной почты, они не всегда используются для маршрутизации почты).
Если вы не используете SMTP-сервер на своем локальном компьютере, вы можете использовать клиент smtplib для связи с удаленным SMTP-сервером. Если вы не используете службу веб-почты (например, gmail или Yahoo! Mail), ваш поставщик электронной почты должен предоставить вам данные сервера исходящей почты, которые вы можете предоставить им, а именно:
mail = smtplib.SMTP('smtp.gmail.com', 587)
Отправка электронной почты в формате HTML с использованием Python
Когда вы отправляете текстовое сообщение с использованием Python, весь контент обрабатывается как простой текст. Даже если вы включите теги HTML в текстовое сообщение, оно будет отображаться как простой текст, и теги HTML не будут отформатированы в соответствии с синтаксисом HTML. Тем не менее, Python предоставляет возможность отправлять HTML-сообщение как фактическое HTML-сообщение.
При отправке сообщения электронной почты вы можете указать версию Mime, тип содержимого и набор символов для отправки электронной почты в формате HTML.
пример
Ниже приведен пример отправки содержимого HTML в виде электронного письма. Попробуйте один раз —