Рубрики
Без рубрики

Отправка электронных писем с помощью Python: Быстрый и простой путеводитель

Краткое примечание: я создаю совершенно новое сообщество для разработчиков, сосредоточенных на создании навыков программирования … Tagged With Python, Tuperial, Beginters, программирование.

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

Это быстрое и простое руководство по отправке электронных писем с 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”