Простой протокол передачи почты (SMTP) кажется стандартом электронной почты для передачи и направления сообщений между системами электронной почты. Пакет smtplib в Python создает объект конференции клиента SMTP, который можно отбросить, чтобы направить электронное письмо на любой компьютер в Интернете, на котором есть служба прослушивания SMTP или ESMTP.
В этой статье мы расскажем вам о методах отправки электронных писем с использованием SMTP в вашей системе. Мы использовали новую версию Spyder для реализации нашей отправки электронной почты через python в Ubuntu 20.04. Войдите в систему из своей системы Ubuntu 20.04, чтобы начать ее реализацию.
Пример 01:
Откройте приложение Spyder из области приложений вашей системы Linux. Откроется окно, показанное ниже. Напишите в нем приведенный ниже код. Сначала мы импортируем smtplib в наш код. Затем мы отдельно определили адреса электронной почты отправителя и получателя. Затем мы использовали тройную цитату, чтобы включить в текст простое электронное письмо, и вы убедились, что заголовки в сообщении правильно отформатированы. Пустая строка отделяет заголовки «От», «Кому» и «Тема» от содержимого электронной почты.
В операторе try для доставки почты сначала подключитесь к собственному SMTP-серверу с помощью smtpObj, а ранее с помощью функции Sendmail только с текстом, адресом отправителя, а также целевым адресом в качестве параметров. Мы можем использовать клиент smtplib для взаимодействия с удаленным SMTP-сервером, если вы не используете SMTP-сервер, работающий на вашей собственной рабочей станции. Итак, если вы используете веб-платформу, такую как Hotmail или Yahoo Mail, поставщик услуг электронной почты должен предоставить вам соответствующую информацию о сервере исходящей почты. Если соединение будет успешным, он отправит письмо получателю и распечатает сообщение об успешном завершении. В противном случае оператор except будет выполнен с сообщением об ошибке.
#!/usr/bin/python import smtplib sender = "destroyer@amail.com receivers = ['andreyex@gmail.com"] message To: To Person <to@todomain.com> Subject: SMTP e-mail test """"From: From Person <from@fromdomain.com> This is a test e-mail message.try: smtp0bj = smtplib.SMTP('www.gmail.com")) smtp0bj.sendmail(sender, receivers, message) print ("Успешно отправлено электронное письмо") except Exception: print ("Ошибка: не удалось отправить электронное письмо")
Сохраните свой код Python и выполните этот код, нажав кнопку «запустить» в приложении spyder.
После выполнения он покажет вам сообщение об успешном завершении, как показано на скриншоте ниже, если отправка электронной почты была успешной с вашей стороны.
Reloaded modules: jupyter_client.ession, zmq.eventloop, zmq.every loop.ioloop, tornado.platform, tornado.platform.asyncio, tornado.gen, zmq.eventloop.zmqstream, jupyter client. jsanutil, client adapter, spyder, spyder pil patch, PIL, PIL.version, PIL.Image, PIL.Image_Holder, PIL, Tiff Tags, PIL.binary, PIL.util, FILM.imaging, Fi.api, lock, cffilerror, cffi.model Successfully sent email
Пример 02:
Как указывалось ранее, Python включает библиотеку smtplib, которая управляет всеми аспектами его протоколов, включая подключение, проверку, проверку и отправку электронной почты. Использование smtplib упрощает эти взаимодействия. На самом базовом уровне электронные письма представляют собой просто последовательности текста, разделенные символами новой строки. Разделы «От», «Кому», «Тема», а также «Тело» будут присутствовать в большинстве писем. Функцию ehlo () можно использовать для создания расшифрованного варианта. Кажется, что в пакете smtplib есть несколько самых разных способов защиты ваших SMTP-коммуникаций.
Первоначально первый метод – установить незащищенное соединение, а затем перейти на TLS. Для этого используется функция starttls (). Чтобы улучшить ссылку для защиты, мы используем функцию starttls(). Как вы видели, каждая строка имеет новую область с данными. Нет бинарных протоколов, XML или JSON; поддерживаются только символы, разделенные строками.
Редактирование строк в Python – действительно простой способ лучше управлять определенными полями. Что вам нужно сделать, так это отправить текстовый аргумент электронной почты в smtplib, и мы научим вас, как это сделать на следующем шаге. Если отправка почты прошла успешно, она напечатает сообщение об успешном завершении, в противном случае распечатайте сообщение об ошибке из оператора except.
coding: utf-8 import smtplib gmail_user = "destroyer@amail.com" gmail_password = "*****" sent from = gmail user to = ['aasavasintw@amail.com'] subject = 'OMG Super Important Message' body = "Hey, whatup" email text = From: %s To: %s Subject: %s %s """ % (sent_from,". join(to), subject, body) try: server = smtplib.SMTP('smtp.gmail.com", 587) server.ehlo() server.login(gmail_user, gmail_password) server.sendmail(sent_from, to, email_text) server.close() print ('Отправленное электронное письмо!') except: print ('Что-то пошло не так…')
Давайте запустим файл еще раз, нажав кнопку «запустить» в приложении Spyder. Если в коде возникает ошибка или не удается установить соединение с сервером Gmail, он отобразит сообщение об ошибке «Что-то пошло не так…» из инструкции except, как показано ниже.
In [11]: runfile('C:/Users/Master/Downloads/untitlede.py', wdir='C:/Users/Master/Downloads") Reloaded modules: jupyter_client.session, zmq.eventloop, zmq.eventloop.ioloop, tornado.platform, tornado.platform.asyncio, tornado.gen, zmq.zmqstream, jupyter.client.jsanutil, jupyter_client.adapter, spyder, spyder.pil_patch, pzl, PTL.version, PTL.Image, PIL.ImageMade, PTL.TiffTags, PTL, binary, FILE, util, PTL, imaging.api, cffi.lock, cffi.error, cffi, model Something went wrong
Если код успешно отправляет письмо на сервер Gmail после выполнения, он отобразит сообщение об успешном завершении «Электронное письмо отправлено!» который использовался в инструкции try в приведенном выше коде Python.
Пример 03:
В этой статье мы узнаем, что делать, чтобы отправить быстрое электронное письмо с использованием скрипта Python. Python, как доминирующий язык, не требует использования каких-либо других библиотек и включает локальную библиотеку для отправки электронных писем под названием «SMTP lib». Функция smtplib создает объект сеанса клиента Simple Mail Transfer Protocol, который можно использовать для написания электронного письма на любой действительный адрес электронной почты в сети. Различные порты использовались различными веб-сайтами. В этом посте мы будем отправлять электронное письмо с использованием учетной записи Gmail. В данном случае используется номер порта 587. Если вы хотите отправить электронное письмо через сайт, отличный от Gmail, вы должны сначала получить необходимые учетные данные.
В первую очередь должен быть загружен модуль «smtplib». После этого мы будем использовать его объект SMTP, чтобы обернуть SMTP-соединение для установления сеанса. Мы должны предоставить самый первый аргумент, который будет адресом сервера, а также другое значение, которое будет используемым портом. Номер порта 587 используется для Gmail. Установите SMTP-соединение в состояние TLS сейчас из соображений безопасности. Все инструкции SMTP зашифрованы с использованием TLS (Transport Layer Security).
После этого вы должны ввести свои данные для входа в Gmail в форме входа в систему для обеспечения конфиденциальности и безопасности. При вводе неверного адреса электронной почты или пароля переводчик выдаст ошибку идентификации. Сохраните сообщение, которое вы будете отправлять, в переменной с именем message. Разместите свой комментарий с помощью метода Sendmail(). Sendmail() использует три аргумента: отправитель, адрес электронной почты получателя и текст, который нужно вести. Все значения должны быть в одинаковом порядке.
import smtplib # создает сеанс SMTP s = smtplib.SMTP('smtp.gmail.com", 587) # запустите TLS для обеспечения безопасности s.starttls() # Идентификация s.login("destroyer@gmail.com", "****") # сообщение для отправки message = "Message_you_need_to_send" # отправка почты s. sendmail("destroyer@amail.com", "andreyex@gmail.com", message) # завершение сессии s.quit()
Заключение:
Помимо процессов разрешений, связанных с Gmail (которые включают менее безопасные приложения и т. д.), Эти сценарии и примеры будут работать практически с любой другой почтовой службой, которая обеспечивает подключение по SMTP, если у вас есть необходимый адрес сервера, а также порт.