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

Будь то отправка благодарственного письма новому подписчику в вашем канале в социальных сетях или добавление функции электронной почты в ваш последний проект, возможность отправлять автоматические сообщения с помощью SMTP в Python - это то, что обязательно появится удобно.

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

Что такое SMTP?

Проще говоря, SMTP или простой протокол передачи почты - это протокол связи для почтовых серверов для передачи электронной почты через Интернет.

Это неотъемлемая часть прикладного уровня пакета TCP / IP, который представляет собой набор протоколов, используемых для связи через Интернет или другие аналогичные сети. В сети, где реализован SMTP, процесс, известный как хранить и пересылать помогает перемещать почту по сети.

instagram viewer

На каждой конечной точке программное обеспечение, известное как агент передачи почты (MTA), использует функцию хранения и пересылки для облегчения связи между участвующими SMTP-серверами. Таким образом, основная роль SMTP - просто указывать, где и как почта перемещается из одной точки в другую в сети.

Начиная

У вас должна быть учетная запись электронной почты для отправки электронных писем с помощью этой программы. Это потому, что мы будем использовать SMTP-службу почтового клиента для отправки электронных писем. В этом руководстве мы будем использовать Gmail.

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

Можно просто использовать существующую учетную запись Gmail, но когда вы поиграете со своей программой, она может скоро заполниться тестовыми электронными письмами. Вот почему мы рекомендуем создать «одноразовую» учетную запись для тестирования.

Теперь включите опцию, чтобы разрешить менее безопасные приложения для доступа к вашей учетной записи Gmail. Это еще одна причина использовать одноразовую электронную почту, поскольку не рекомендуется экспериментировать с настройками конфиденциальности вашего основного адреса электронной почты.

Написание электронной почты на Python

Python 3 поставляется с предустановленным модулем smtplib (сокращение от smtp library), который можно использовать для работы с SMTP-серверами.

Как и любой другой модуль Python, первое, что вам нужно сделать, это импортировать smtplib.

импортировать smtplib

Инициализация объекта SMTP

Теперь вы можете использовать smtplib для создания объекта SMTP, который предоставит вам большую часть функциональности обычного почтового клиента. Однако функции объекта SMTP можно использовать только через методы экземпляра. Итак, естественно, следующим шагом будет объявление экземпляра объекта.

mySMTP = smtplib. SMTP ("smtp.google.com") 

Это настраивает объект SMTP для отправки электронных писем с использованием SMTP-сервера Google.

После этого мы указываем емейлы отправителя и получателя. Здесь вам пригодится созданная вами ранее учетная запись Gmail.

emailSender = «[email protected]»
myThroaway = "[email protected]"
emailRecipients = [myThroaway]

Здесь следует отметить, что список получателей на самом деле является массивом, а это означает, что он предназначен для хранения неатомарных значений. В результате вы даже можете указать в этом поле весь список рассылки!

Написание сообщения

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

  • Реквизиты отправителя
  • Реквизиты получателя
  • Предмет
  • Тело сообщения

Эти поля заключены в тройные кавычки и разграничены следующим образом:

newEmail = От: От человека 
Кому: Человеку
Тема: Тест по электронной почте
Это тело письма.

Отправка электронного письма

Наконец, мы можем использовать команду sendmail для отправки почты с вашего SMTP-сервера на сервер получателя.

mySMTP.sendmail (emailSender, emailRecipients, newEmail)

Теперь остается только один последний шаг: реорганизация кода, чтобы предотвратить любые предсказуемые сбои программы.

Устранение неполадок в вашей программе электронной почты Python

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

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

импортировать smtplib
emailSender = «[email protected]»
myThroaway = ‘[email protected]
emailRecipients = [myThroaway]
newEmail = От: От человека
Кому: Человеку
Тема: Тест по электронной почте
Это тело письма.

пытаться:
smtpObj = smtplib. SMTP («smtp.gmail.com»)
mySMTP.sendmail (emailSender, emailRecipients, newEmail)
print («Электронное письмо успешно отправлено!»)
кроме SMTPException:
print ("Ошибка: при отправке вашего электронного письма произошла ошибка.")

Защита вашей электронной почты

Если вы собираетесь использовать Python в реальных условиях для отправки электронных писем, важно убедиться, что связь безопасна на обоих концах.

Использование простого SMTP-сервера с портом по умолчанию не обеспечивает никакого уровня шифрования для связи. Это означает, что если какая-либо третья сторона прослушивает вашу сеть, она может получить доступ к вашим учетным данным и информации, содержащейся в вашей электронной почте.

Один из способов обойти эту проблему - использовать протокол TLS (Transport Layer Security) для шифрования вашего обмена данными. Это тот же протокол, который используют основные почтовые клиенты, такие как Gmail и Outlook, чтобы ваши электронные письма никогда не попали в чужие руки.

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

Первым шагом, конечно же, является импорт файла ssl библиотека вместе с smtplib. В ssl библиотека дает вам возможность создавать безопасный контекст SSL и обмениваться данными по зашифрованной сети, подключаясь к определенным портам на обоих концах.

Безопасный контекст SSL - это не что иное, как набор шифров, версий протокола, доверенных сертификатов, параметров TLS и расширений TLS.

После этого мы можем указать порт TLS и добавить несколько ssl библиотечные функции для создания защищенной электронной почты.

Код со всеми внесенными изменениями выглядит примерно так:

импортировать smtplib, ssl
smtpServer = "smtp.gmail.com"
порт = 587
myEmail = "[email protected]"
пароль = "my_password"
# адрес электронной почты и пароль также могут быть полями для ввода пользователем
context = ssl.create_default_context ()
newEmail = От: От человека
Кому: Человеку
Тема: Тест по электронной почте
Это тело письма.

пытаться:
сервер = smtplib. SMTP (smtpServer, порт)
server.starttls (контекст = контекст)
server.login (newEmail, пароль)
кроме исключения как e:
print ("электронное письмо не может быть отправлено.")
наконец-то:
server.quit ()

Как и раньше, вы должны создать и использовать экземпляр SMTP в блоке try-except, чтобы предотвратить любые внезапные сбои программы.

Что вы можете сделать с помощью этого скрипта Python

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

От использования его на вашем личном веб-сайте для отправки автоматических электронных писем с подтверждением до использования его для отправки рождественских открыток по электронной почте или приглашения вашей семье и друзьям, использование этого небольшого скрипта Python ограничено только вашим собственным креативность.

Кроме того, это лишь одна из многих замечательных вещей, которые вы можете делать с Python. Благодаря повсеместной поддержке разработчиков и простому в освоении синтаксису овладение навыками Python никогда не было таким простым.

Чтобы продолжить создание интересных вещей с помощью кода, ознакомьтесь с нашим руководством о том, как создайте своего собственного бота Telegram с Python 3!

Электронное письмо
Как улучшить свои навыки работы с Python и искусственным интеллектом с помощью Keras, Pytorch, Tensorflow и т. Д.

Повысьте свои навыки программирования и веб-разработки на Python, искусственном интеллекте, Keras, PyTorch и т. Д.

Похожие темы
  • Программирование
  • Gmail
  • Подсказки по электронной почте
  • Python
  • Автоматизация задач
Об авторе
Яш Челлани (Опубликовано 8 статей)

Яш - амбициозный студент, изучающий информатику, любит создавать вещи и писать обо всем, что связано с технологиями. В свободное время он любит играть в сквош, читать последнюю версию Мураками и охотиться на драконов в Скайриме.

Ещё от Yash Chellani

Подписывайтесь на нашу новостную рассылку

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

Еще один шаг…!

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

.