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

Python Howto – отправка электронных пизов с помощью Python

Привет всем! В сегодняшней статье мы посмотрим, как мы можем использовать Python для отправки электронных писем.

Автор оригинала: Pankaj Kumar.

Python Howto – отправка электронных пизов с помощью Python

Привет всем! В сегодняшней статье мы посмотрим, как мы можем использовать Python для отправки электронных писем.

Отправка электронных писем – краткий обзор

Обычно задача отправки электронных писем выполняется с использованием MTP (протокол передачи почты). В настоящее время существует отдельный протокол, называемый SMTP (простой протокол передачи почты), который является широко используемым протоколом для отправки электронных писем.

Этот протокол работает на клиент-серверной основе, похоже на любой другой. Когда мы хотим отправить электронное письмо на целевую машину, мы (клиент) необходимо отправить содержимое почты на SMTP-сервер. Сервер теперь будет направлять его на желаемую целевую машину.

Итак, чтобы отправить электронную почту, вам нужно использовать SMTP-сервер. Хотя у вас может быть пользовательский SMTP-сервер, мы будем использовать бесплатный SMTP-сервер Gmail для отправки электронных писем, используя Gmail!

Предварительная настройка для отправки электронных писем с Python

Прежде чем пройти через остальную часть этого учебника, я совет вам настроить учетную запись Game Gmail, которую вы можете использовать для тестирования отправки электронных писем.

После настройки учетной записи есть еще одна вещь, которую вам нужно сделать.

По умолчанию ваша учетная запись Gmail не настроена, чтобы разрешить доступ от менее безопасных приложений, таких как SMTP. Нам нужно включить этот доступ для нашего аккаунта.

Вы можете пойти в Страница конфигурации учетной записи Gmail И включите доступ с вашей учетной записи Google.

Менее безопасный доступ Gmail

Теперь вы готовы отправлять электронные письма с помощью Python! Давайте двигаться дальше.

Отправить электронные письма с помощью Python SMTP

У Python есть клиентская библиотека SMTP ( SMTPLIB ), которую он будет использовать для отправки электронных писем на SMTP-сервер (Gmail).

Это часть стандартной библиотеки, поэтому вы можете напрямую импортировать его!

import smtplib

Хорошо, теперь, давайте попробуем написать скрипт, чтобы отправить тестовую электронную почту.

Любое электронное письмо с использованием SMTP должно иметь следующее содержимое:

  • Адрес отправителя
  • Адрес приемника
  • Предмет (необязательно)
  • Тело почты

Давайте напишем все из них.

import smtplib

sender_address = "sender@gmail.com" # Replace this with your Gmail address

receiver_address = "receiver@gmail.com" # Replace this with any valid email address

account_password = "xxxxxxxxxx" # Replace this with your Gmail account password

subject = "Test Email using Python"

body = "Hello from AskPython!\n\nHappy to hear from you!\nWith regards,\n\tDeveloper"

# Endpoint for the SMTP Gmail server (Don't change this!)
smtp_server = smtplib.SMTP_SSL("smtp.gmail.com", 465)

# Login with your Gmail account using SMTP
smtp_server.login(sender_address, account_password)

# Let's combine the subject and the body onto a single message
message = f"Subject: {subject}\n\n{body}"

# We'll be sending this message in the above format (Subject:...\n\nBody)
smtp_server.sendmail(sender_address, receiver_address, message)

# Close our endpoint
smtp_server.close()

Убедитесь, что вы замените sender_address , приемник_address и account_password С вашей учетной записью Gmail!

Что мы делаем, это то, что мы используем SMTP-сервер для доступа к нашей учетной записи Gmail, используя безопасный SMTP ( SMTP_SSL ). После входа в систему мы можем напрямую отправить сообщение для ресивера, используя smtp_server.sendmail () !

Теперь, если вы введете тот же аккаунт для отправителя и получателя, вы получите электронное письмо с моим.

Python Test Email.

Давайте проверим содержимое.

Результат тестирования питона

Действительно, мы только что отправили правильное письмо с помощью Python!

Вы можете улучшить код, чтобы гарантировать, что ресурсы всегда закрыты, используя контекстные менеджеры.

import smtplib

sender_address = "sender@gmail.com" # Replace this with your Gmail address

receiver_address = "receiver@gmail.com" # Replace this with any valid email address

account_password = "xxxxxxxxxx" # Replace this with your Gmail account password

subject = "Test Email using Python"

body = "Hello from AskPython!\n\nHappy to hear from you!\nWith regards,\n\tDeveloper"

# We can use a context manager
with smtplib.SMTP_SSL("smtp.gmail.com", 465) as smtp_server:
    # Login with your Gmail account using SMTP
    smtp_server.login(sender_address, account_password)

    # Let's combine the subject and the body onto a single message
    message = f"Subject: {subject}\n\n{body}"

    # We'll be sending this message in the above format (Subject:...\n\nBody)
    smtp_server.sendmail(sender_address, receiver_address, message)

Это даст те же результаты, что и раньше – другое письмо!

Заключение

В этой статье мы смотрели, как мы могли бы использовать Python, чтобы легко отправлять электронные письма, используя SMTP-сервер Gmail.

Рекомендации