Краткое примечание: я создаю совершенно новое сообщество для разработчиков, ориентированных на создание навыков программирования через гостеприимную среду онлайн -сотрудничества. Нам нужны такие разработчики, как вы, так что подумайте присоединяясь к нам !
Это быстрое и простое руководство по отправке электронных писем с Python. Вы узнаете, как отправить электронное письмо с вашего почтового сервера на любой адрес. Мы рассмотрим, как отправлять электронные письма с простым текстом, контентом в стиле HTML и изображением.
- Отправить электронное письмо с Python
- Шаг 1: импорт электронной почты модули
- Шаг 2: Настройте поля заголовка электронной почты
- Шаг 3: Настройте тело сообщения электронной почты
- Шаг 4: Настройте сервер электронной почты
- Шаг 5: Отправка электронной почты
- Шаг 6: Соберите все вместе
- По электронной почте HTML Content
- По электронной почте изображение в качестве вложения
- Вывод
Шаг 1: импорт электронной почты модули
Python содержит встроенные модули, которые мы можем использовать для отправки электронных писем. Есть два модуля, которые нам нужно сделать, которые являются Smtplib
и Email.message
Анкет
SMTP это протокол связи, используемый для отправки электронных писем. Питон smtplib
Модуль позволяет нам определить клиент SMTP, из которого мы можем использовать для отправки электронных писем.
Питон Email.message
Модуль используется для сборки структуры электронной почты, которая включает в себя предмет, адрес и содержание электронной почты. Из Email.message
Модуль нам понадобится только Emailmessage
класс.
Чтобы использовать необходимые функции, объявляют следующее в верхней части файла Python.
import smtplib from email.message import EmailMessage
Шаг 2: Настройте поля заголовка электронной почты
Во -первых, используя Emailmessage ()
Класс Мы создадим объект, который будет содержать все детали сообщения электронной почты.
# create an email message object message = EmailMessage()
Далее мы можем добавить данные заголовка сообщения электронной почты, чтобы указать тему, отправлять адрес и получение адреса, как показано ниже.
email_subject = "Email test from Python" sender_email_address = "your_email@gmail.com" receiver_email_address = "receiver_email@address.com" # configure email headers message['Subject'] = email_subject message['From'] = sender_email_address message['To'] = receiver_email_address
Шаг 3: Настройте тело сообщения электронной почты
Для этого примера содержимое сообщения будет простым текстовым сообщением. Тело электронной почты устанавливается с использованием set_content
Метод на объекте электронной почты следующим образом.
# set email body text message.set_content("Hello from Python!")
Шаг 4: Настройте сервер электронной почты
Электронный сервер – это приложение, используемое для отправки и получения электронных писем. Такие серверы используют протокол SMTP для отправки электронных писем на другие серверы.
Сервер для использования будет зависеть от вашего поставщика электронной почты. Для Gmail почтовый сервер smtp.gmail.com
или для Hotmail это smtp.live.com
.
Если вы не используете Gmail или Hotmail, вы можете найти через Этот список серверов электронной почты SMTP Чтобы найти правильный сервер для вашего поставщика электронной почты.
В нашем примере мы скажем, что электронное письмо отправляется из учетной записи Gmail, поэтому нам нужно использовать smtp.gmail.com
как наш сервер.
Примечание. По умолчанию Gmail блокирует доступ к неизвестным сторонним клиентам, получающим доступ к вашей учетной записи Gmail, такой как наша программа Python. Если вы используете Gmail, для этой программы Python для работы перейдите в настройки безопасности учетной записи Gmail и Включите менее безопасный доступ приложений . Вы можете прочитать больше об этой настройке на Страница поддержки Gmail.
Еще одна настройка, которую мы должны настроить для нашего SMTP -сервера, – это почтовый порт. Это сетевой порт, который будет использоваться нашим клиентским приложением Python для отправки электронных писем на другой сервер. Мы будем использовать SMTP -порт 587
, который является портом по умолчанию, используемому для обработки отправки электронных писем через SMTP. Он также использует TLS шифрование чтобы убедиться, что электронная почта будет надежно доставлена.
Вот как настроить почтовый сервер SMTP и номер порта. Если ваша учетная запись электронной почты не Gmail, вы должны заменить значение email_smtp
с вашим собственным сервером учетной записи электронной почты.
email_smtp = "smtp.gmail.com" # set smtp server and port server = smtplib.SMTP(email_smtp, '587')
После объявления сервера нам нужны дополнительные шаги, чтобы подключение к SMTP -серверу.
Это включает в себя идентификацию себя на сервере, используя функцию ehlo ()
Затем инициируя безопасное соединение TLS с сервером, используя startTls ()
Анкет
email_smtp = "smtp.gmail.com" # set smtp server and port server = smtplib.SMTP(email_smtp, '587') # identify this client to the SMTP server server.ehlo() # secure the SMTP connection server.starttls()
Шаг 5: Отправка электронной почты
Последний шаг – отправить электронное письмо.
Во -первых, нам нужно войти в нашу электронную почту SMTP, используя Вход
функция Мы передаем адрес электронной почты и пароль, используемый при входе в нашу учетную запись электронной почты.
После этого мы можем просто инициировать отправку электронной почты, используя send_message
и передайте объект, удерживающий содержимое сообщения, которое мы настроили ранее.
Мы наконец используем quit ()
Чтобы закончить соединение с SMTP -сервером.
sender_email_address = "your_email@gmail.com" email_password = "your_email_password" # login to email account server.login(sender_email_address, email_password) # send email server.send_message(message) # close connection to server server.quit()
Шаг 6: Соберите все вместе
Для полноты, вот как будет выглядеть ваш файл Python, когда объединены вышеупомянутые фрагменты кода.
import smtplib from email.message import EmailMessage email_subject = "Email test from Python" sender_email_address = "your_email@gmail.com" receiver_email_address = "receiver_email@address.com" email_smtp = "smtp.gmail.com" email_password = "your_email_password" # create an email message object message = EmailMessage() # configure email headers message['Subject'] = email_subject message['From'] = sender_email_address message['To'] = receiver_email_address # set email body text message.set_content("Hello from Python!") # set smtp server and port server = smtplib.SMTP(email_smtp, '587') # identify this client to the SMTP server server.ehlo() # secure the SMTP connection server.starttls() # login to email account server.login(sender_email_address, email_password) # send email server.send_message(message) # close connection to server server.quit()
Запустите приложение Python, и адрес электронной почты получателя должен получить сообщение из учетной записи электронной почты Sender!
Это должно продемонстрировать, как настроить тело электронной почты для HTML -контента. Процедура настройки сервера электронной почты остается прежней.
Сначала мы прочитаем содержимое файла, содержащего HTML, а затем по электронной почте по электронной почте содержимое.
Файл с именем Message.html
будет содержать несколько простых HTML, вот содержимое.
Sending an HTML email from Python
Hello there,
Here's a link to an awesome dev community!
Наша программа Python сначала прочтет содержимое файла. Затем мы добавляем содержимое в объект сообщения, используя set_content
Метод, как мы делали при настройке простого текста. Единственное отличие состоит в том, что мы указываем, что содержимое типа HTML с использованием опции subtype = 'html'
Анкет
# create an email message object message = EmailMessage() # read file containing html with open('message.html', 'r') as file: file_content = file.read() # add message content as html type message.set_content(file_content, subtype='html')
Все остальные части программы остаются прежними. Запустите программу Python, и адрес электронной почты получателя получит сообщение, на этот раз в формате HTML!
Это продемонстрирует, как отправить изображение, прикрепленное к вашей электронной почте.
Сначала нам нужно открыть изображение и прочитать его в бинарном формате. Изображение, которое мы хотим отправить в качестве вложения, называется Image.jpg
Следующее будет читать изображение как двоичное и хранить его в переменной Image_data
Анкет
# open image as a binary file and read the contents with open('image.jpg', 'rb') as file: image_data = file.read()
Чтобы добавить вложение к объекту электронной почты, мы используем add_attachment
Функциональна и передайте данные изображения, которые мы читаем в двоичном формате.
Нам также необходимо добавить некоторые параметры, чтобы указать тип изображения. Добавить опцию MANICEPE = 'Image'
а также добавьте опцию subtype = imghdr.what (none, image_data)
Анкет
Опция подтипа использует Imghdr
модуль, чтобы определить тип нашего изображения. Чтобы использовать этот модуль, нам нужно добавить дополнительный импорт модуля в верхнюю часть нашей программы Python.
import imghdr
Код Python будет выглядеть следующим образом, чтобы прочитать данные изображения, установить простой текстовый корпус электронной почты и прикрепить изображение к электронной почте.
# create an email message object message = EmailMessage() # open image as a binary file and read the contents with open('image.jpg', 'rb') as file: image_data = file.read() message.set_content("Email from Python with image attachment") # attach image to email message.add_attachment(image_data, maintype='image', subtype=imghdr.what(None, image_data))
Все остальные части программы остаются прежними. Запустите программу Python, и адрес электронной почты получателя получит простое текстовое сообщение вместе с изображением в качестве вложения!
Теперь вы, надеюсь, знакомы с процессом отправки электронных писем с Python! Следуйте этим пошаговым инструкциям, и вы сможете запустить свое собственное заявление для отправки электронных писем по приемному адресу.
Если у вас есть какие -либо вопросы, не стесняйтесь комментировать ниже.
Если вы нашли это полезное посещение дополнительных учебных пособий и сообщений по советам разработчиков и Производительность кодирования на моем блог 🙂
Оригинал: “https://dev.to/funbeedev/sending-emails-with-python-quick-and-easy-guide-12e3”