Как отправлять автоматические сообщения электронной почты на Python

Как отправлять автоматические сообщения электронной почты на Python

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





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





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





Что такое SMTP?

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

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



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

Начиная

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





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

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





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

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

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

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

import smtplib

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

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

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

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

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

emailSender = senderMail@sender.com
myThroaway = 'myEmail@gmail.com'
emailRecipients = [myThroaway]

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

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

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

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

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

как посмотреть старые сообщения на iphone
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

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

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

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

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

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

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

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

import smtplib
emailSender = senderMail@sender.com
myThroaway = ‘my_email@gmail.com’
emailRecipients = [myThroaway]
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
smtpObj = smtplib.SMTP(‘smtp.gmail.com’)
mySMTP.sendmail(emailSender, emailRecipients, newEmail)
print (Email sent successfully!)
except SMTPException:
print ('Error: There was an error in sending your email.')

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

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

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

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

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

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

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

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

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

import smtplib, ssl
smtpServer = 'smtp.gmail.com'
port = 587
myEmail = 'my_email@gmail.com'
password = 'my_password'
#email and password can also be user input fields
context = ssl.create_default_context()
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
server = smtplib.SMTP(smtpServer,port)
server.starttls(context=context)
server.login(newEmail, password)
except Exception as e:
print('the email could not be sent.')
finally:
server.quit()

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

лучший способ играть в игры для ps1

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

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

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

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

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

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

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

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

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

Ещё от Yash Chellani

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

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

Нажмите здесь, чтобы подписаться