Докато търговските имейл клиенти предлагат удобството на удобен за потребителя GUI, те често им липсват гъвкавост и адаптивност, които много разработчици или създатели на съдържание желаят за своите имейли нужди.
Било то за изпращане на благодарствено имейл до нов абонат на вашия канал в социалните медии или добавяне на имейл функционалност към последният ви проект, възможността за изпращане на автоматизирани съобщения с помощта на SMTP в Python е нещо, което непременно ще влезе удобен.
Прочетете, за да разберете как можете да получите скрипт на Python за изпращане на имейли, работещи на вашата машина днес.
Какво е SMTP?
Казано по-просто, SMTP или Simple Mail Transfer Protocol е комуникационен протокол за пощенски сървъри за предаване на имейл през интернет.
Това е неразделна част от приложния слой на TCP / IP пакета, който представлява набор от протоколи, използвани за комуникация през интернет или други подобни мрежи. В мрежа, в която е внедрен SMTP, процес, известен като съхранявайте и препращайте помага за преместване на поща в мрежи.
Във всяка крайна точка софтуерът, известен като Mail Transfer Agent (MTA), използва съхранение и пренасочване, за да улесни комуникацията между участващите SMTP сървъри. Следователно основната роля на SMTP е просто да диктува къде и как пощата се премества от една точка в друга в мрежата.
Приготвяме се да започнем
Трябва да имате имейл акаунт, който да използвате за изпращане на имейли с помощта на тази програма. Това е така, защото ще използваме SMTP услугата на имейл клиента за изпращане на имейли. За този урок ще използваме Gmail.
Можете също да използвате локален SMTP сървър за отстраняване на грешки, за да изпращате тестови имейли, но засега ще използваме имейл акаунт за изпращане на имейли, тъй като е по-интуитивен.
Възможно е просто да използвате съществуващ акаунт в Gmail, но докато играете с програмата си, тя може скоро да се напълни с тестови имейли. Ето защо препоръчваме да създадете акаунт за „изхвърляне“ с цел тестване.
Сега включете опцията за позволяват по-малко сигурни приложения за достъп до вашия акаунт в Gmail. Това е друга причина да използвате имейл за изхвърляне, тъй като не се препоръчва да си играете с настройките за поверителност на основния си имейл.
Писане на имейл в Python
Python 3 се предлага предварително инсталиран с модул, наречен smtplib (съкратено от smtp библиотека), който може да се използва за работа със 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 порт на друг. В такъв случай вашата програма може да се срине неочаквано.
За да отчетете такива възможности, можете да използвате a опитайте-освен блок и поставете предразположените към грешки изрази вътре в опитвам блок. Цялата ви програма, заедно с блока try-освен, трябва да изглежда по следния начин:
внос 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. The 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 (context = context)
server.login (newEmail, парола)
с изключение на изключение като e:
print („имейлът не може да бъде изпратен.“)
накрая:
server.quit ()
Както и преди, трябва да създадете и използвате SMTP екземпляр в блок try-osim, за да предотвратите внезапни сривове на програмата.
Какво можете да направите с този скрипт на Python
Сега, когато сте избрали страхотното и изненадващо полезно умение за автоматизиране на имейли с помощта на код, можете да го приложите към всяка платформа, която изисква изпращане на имейли до разнообразен пощенски списък.
От използването му на личния ви уебсайт за изпращане на автоматични имейли за потвърждение до използването му за изпращане по имейл на коледни картички или покани за вашето семейство и приятели, употребите на този малък скрипт на Python са ограничени само от вас творчество.
Освен това, това е само едно от многото страхотни неща, които можете да направите с Python. Със своята повсеместна поддръжка за разработчици и лесен за усвояване синтаксис, избирането на умение на Python никога не е било по-лесно.
За да продължите да създавате страхотни неща с код, вижте нашето ръководство за това как създайте свой собствен Telegram бот с Python 3!
Надградете уменията си за програмиране и уеб разработка на Python, Artificial Intelligence, Keras, PyTorch и други
- Програмиране
- Gmail
- Съвети по имейл
- Python
- Автоматизация на задачите
Яш е амбициозен студент по компютърни науки, който обича да изгражда нещата и да пише за всички неща. В свободното си време той обича да играе скуош, да чете копие на най-новите Мураками и да ловува дракони в Скайрим.
Абонирайте се за нашия бюлетин
Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!
Още една стъпка…!
Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.