Как да изпращате автоматизирани имейл съобщения в Python

Как да изпращате автоматизирани имейл съобщения в Python

Докато търговските имейл клиенти предлагат удобството на удобния за потребителя графичен интерфейс, те често нямат гъвкавостта и персонализираността, които много разработчици или създатели на съдържание желаят за своите нужди по имейл.





Независимо дали изпращате благодарствен имейл до нов абонат на вашия канал в социалните медии или добавяте имейл функционалност към най -новия си проект, възможността да изпращате автоматизирани съобщения чрез SMTP в Python е нещо, което непременно ще ви бъде полезно.





Прочетете, за да разберете как можете да накарате скрипт на Python да изпраща имейли, работещи на вашата машина днес.





Какво е SMTP?

Казано по -просто, SMTP или Simple Protocol Transfer Protocol е комуникационен протокол за пощенски сървъри за предаване на имейл през интернет.

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



Във всяка крайна точка софтуер, известен като Mail Transfer Agent (MTA), използва съхранение и препращане, за да улесни комуникацията между участващите SMTP сървъри. Следователно основната роля на SMTP е просто да диктува къде и как пощата се движи от една точка в друга в мрежа.

Приготвяме се да започнем

Трябва да имате имейл акаунт, който да използвате за изпращане на имейли с помощта на тази програма. Това е така, защото ще използваме SMTP услугата на имейл клиента за изпращане на имейли. За този урок ще използваме Gmail.





Можете също да използвате локален SMTP сървър за отстраняване на грешки за изпращане на тестови имейли, но засега ще използваме имейл акаунт за изпращане на имейли, тъй като е по -интуитивен.

Възможно е просто да използвате съществуващ акаунт в Gmail, но докато играете с програмата си, скоро тя може да се напълни с тестови имейли. Ето защо препоръчваме да създадете „изхвърлен“ акаунт с цел тестване.





Сега включете опцията за позволяват по -малко сигурни приложения за достъп до вашия Gmail акаунт. Това е още една причина да използвате изхвърлящ се имейл, тъй като не се препоръчва да си играете с настройките за поверителност на основния си имейл.

Писане на имейла в Python

Python 3 идва предварително инсталиран с модул, наречен smtplib (съкращение от smtp библиотека), който може да се използва за работа със 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]

Едно нещо, което трябва да се отбележи тук, е, че списъкът с получатели всъщност е масив, което означава, че е проектиран да съхранява неатомни стойности. В резултат на това дори можете да посочите цял пощенски списък в това поле!

Писане на съобщението

Може би най -ясната част от процеса, тук трябва да въведете стойности, които обикновено бихте добавили, когато съставяте нов имейл. Това включва:

  • Данни за изпращача
  • Данни за получателя
  • Предмет
  • Тяло на съобщението

Тези полета са събрани в тройни кавички и са разграничени, както следва:

огледален андроид екран на компютър безжично
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 порт към друг. В такъв случай програмата ви може да се срине неочаквано.

За да отчетете такива възможности, можете да използвате a пробвай-с изключение блок и поставете предразположените към грешки изявления в опитвам блок. Цялата ви програма, заедно с блока 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 (защита на транспортния слой), за да шифровате комуникацията си. Това е същият протокол, използван от големите имейл клиенти, като Gmail и Outlook, за да се гарантира, че имейлите ви никога не попадат в неподходящи ръце.

За да направим това, трябва да направим няколко малки промени в програмата, която създадохме по -рано.

Първата стъпка, разбира се, е да импортирате ssl библиотека заедно с smtplib . The 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, за да предотвратите всякакви резки сривове на програмата.

как да проверите здравето на батерията на android

Какво можете да направите с този скрипт на Python

Сега, след като сте придобили страхотното и изненадващо полезно умение за автоматизиране на имейли с помощта на код, можете да го приложите към всяка платформа, която изисква изпращане на имейли до разнообразен пощенски списък.

От използването му на личния ви уебсайт до изпращането на автоматизирани имейли за потвърждение до използването му за изпращане на коледни картички или покани до вашето семейство и приятели, използването на този малък скрипт на Python е ограничено само от вашето собствено творчество.

Също така, това е само едно от многото страхотни неща, които можете да правите с Python. Със своята повсеместна поддръжка за разработчици и лесен за усвояване синтаксис, усвояването на умение на Python никога не е било по-лесно.

За да продължите да изграждате готини неща с код, вижте нашето ръководство за това изградете свой собствен Telegram бот с Python 3 !

Дял Дял Туит електронна поща Как да надстроите уменията си за Python и AI с Keras, Pytorch, Tensorflow и др

Надградете уменията си за програмиране и уеб разработка на Python, изкуствен интелект, Keras, PyTorch и др.

Прочетете Напред
Свързани теми
  • Програмиране
  • Gmail
  • Съвети по имейл
  • Python
  • Автоматизация на задачи
За автора Яш Челани(10 статии са публикувани)

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

Още от Yash Chellani

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате