Lai gan komerciālie e-pasta klienti piedāvā lietotājam draudzīgas GUI ērtības, viņiem bieži vien to trūkst elastība un pielāgojamība, ko daudzi izstrādātāji vai satura veidotāji vēlas sūtīt pa e-pastu vajadzībām.

Vai tas būtu par pateicības e-pasta nosūtīšanu jaunam abonentam jūsu sociālo mediju kanālā vai e-pasta funkcionalitātes pievienošanai jūsu jaunākais projekts, spēja nosūtīt automatizētus ziņojumus, izmantojot SMTP Python, ir kaut kas tāds, kam noteikti jāienāk ērts.

Lasiet tālāk, lai uzzinātu, kā jūs varat iegūt Python skriptu, lai nosūtītu e-pastus, kas šodien darbojas jūsu datorā.

Kas ir SMTP?

Vienkāršāk sakot, SMTP vai vienkāršais pasta pārsūtīšanas protokols ir saziņas protokols pasta serveriem e-pasta pārsūtīšanai internetā.

Tā ir neatņemama TCP / IP komplekta lietojuma slāņa sastāvdaļa, kas ir protokolu kopums, ko izmanto saziņai internetā vai citos līdzīgos tīklos. Tīklā, kurā tiek ieviests SMTP, process, kas pazīstams kā veikalā un uz priekšu palīdz pārvietot pastu pa tīkliem.

instagram viewer

Katrā parametrā programmatūra, kas pazīstama kā Mail Transfer Agent (MTA), izmanto veikalu un pārsūtīšanu, lai atvieglotu saziņu starp iesaistītajiem SMTP serveriem. Tāpēc SMTP galvenā loma ir vienkārši noteikt, kur un kā pasts tīklā pārvietojas no viena punkta uz otru.

Darba sākšana

Jums ir jābūt e-pasta kontam, ko izmantot e-pasta ziņojumu sūtīšanai, izmantojot šo programmu. Tas ir tāpēc, ka e-pasta ziņojumu sūtīšanai izmantosim e-pasta klienta SMTP pakalpojumu. Šajā apmācībā mēs izmantosim Gmail.

Pārbaudes e-pasta ziņojumu sūtīšanai varat izmantot arī vietējo SMTP atkļūdošanas serveri, taču pagaidām e-pasta ziņojumu sūtīšanai izmantosim e-pasta kontu, jo tas ir intuitīvāk.

Ir iespējams vienkārši izmantot esošu Gmail kontu, taču, spēlējoties ar savu programmu, tā drīz var tikt piepildīta ar testa e-pastiem. Tāpēc testēšanas nolūkā iesakām izveidot “izmetamu” kontu.

Tagad ieslēdziet opciju atļaut mazāk drošas lietotnes lai piekļūtu savam Gmail kontam. Tas ir vēl viens iemesls, kāpēc izmantot izmetamu e-pastu, jo nav ieteicams spēlēt ar primārā e-pasta konfidencialitātes iestatījumiem.

E-pasta rakstīšana Python

Python 3 ir iepriekš instalēts ar moduli ar nosaukumu smtplib (saīsinājums no smtp bibliotēkas), kuru var izmantot darbam ar SMTP serveriem.

Tāpat kā jebkurš cits Python modulis, pirmā lieta, kas jums jādara, ir importēt smtplib.

importēt smtplib

SMTP objekta inicializēšana

Tagad jūs varat izmantot smtplib, lai izveidotu SMTP objektu, kas nodrošinās lielāko daļu parastā e-pasta klienta funkcionalitātes. Tomēr SMTP objekta funkcijas var izmantot tikai, izmantojot instanču metodes. Tātad, protams, nākamais solis ir objekta instances deklarēšana.

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

Tas konfigurē SMTP objektu sūtīt e-pastus, izmantojot Google SMTP serveri.

Pēc tam mēs norādām sūtītāja un saņēmēja e-pastus. Šeit noderēs agrāk izveidotais Gmail konts.

emailSender = “[email protected]
myThroaway = "[email protected]"
emailRecipients = [myThroaway]

Šeit jāatzīmē viena lieta, ka saņēmēju saraksts faktiski ir masīvs, kas nozīmē, ka tas ir paredzēts neatomu vērtību glabāšanai. Rezultātā šajā laukā varat norādīt pat visu adresātu sarakstu!

Ziņas rakstīšana

Varbūt visvienkāršākā procesa daļa, šeit jums jāievada vērtības, kuras parasti pievienojat, sastādot jaunu e-pastu. Tas iekļauj:

  • Sūtītāja informācija
  • Saņēmēja informācija
  • Priekšmets
  • Ziņojuma pamatteksts

Šie lauki ir salikti trīskāršās pēdiņās un tiek norobežoti šādi:

newEmail = No: No personas 
Kam: Personai
Temats: E-pasta pārbaude
Šis ir e-pasta ziņojuma pamatteksts.

E-pasta sūtīšana

Visbeidzot, mēs varam izmantot komandu sendmail, lai nosūtītu vēstules no jūsu SMTP servera uz saņēmēja serveri.

mySMTP.sendmail (emailSender, emailRecipients, newEmail)

Tagad ir tikai viens pēdējais solis: koda pārkārtošana, lai novērstu paredzamu programmas avāriju.

Python e-pasta programmas problēmu novēršana

Dažreiz jūsu SMTP serveris, iespējams, neizveido savienojumu ar saņēmēja serveri vai var būt problēma ar e-pasta ziņojumu sūtīšanu no viena SMTP porta citam. Šādā gadījumā jūsu programma var negaidīti avarēt.

Lai ņemtu vērā šādas iespējas, varat izmantot a mēģināt, izņemot bloķēt un ievietot kļūdas pakļautos paziņojumus mēģiniet bloķēt. Visai jūsu programmai kopā ar bloku “try-izņemot” vajadzētu izskatīties apmēram šādi:

importēt smtplib
emailSender = “[email protected]
myThroaway = ‘[email protected]
emailRecipients = [myThroaway]
newEmail = No: No personas
Kam: Personai
Temats: E-pasta pārbaude
Šis ir e-pasta ziņojuma pamatteksts.

mēģiniet:
smtpObj = smtplib. SMTP (‘smtp.gmail.com’)
mySMTP.sendmail (emailSender, emailRecipients, newEmail)
izdrukāt (“E-pasts veiksmīgi nosūtīts!”)
izņemot SMTPException:
print ("Kļūda: sūtot e-pastu, radās kļūda.")

E-pasta ziņojumu drošība

Ja e-pasta ziņojumu sūtīšanai plānojat izmantot Python reālajā vidē, ir svarīgi pārliecināties, vai saziņa ir droša abos galos.

Vienkārša SMTP servera izmantošana ar noklusējuma portu nenodrošina saziņai šifrēšanas slāni. Tas nozīmē, ka, ja jūsu tīklā klausās kāda trešā puse, tā var piekļūt jūsu pieteikšanās akreditācijas datiem un jūsu e-pastā ietvertajai informācijai.

Viens no šīs problēmas apiešanas veidiem ir TLS (Transport Layer Security) protokola izmantošana, lai šifrētu jūsu saziņu. Šis ir tas pats protokols, ko izmanto lielākie e-pasta klienti, piemēram, Gmail un Outlook, lai nodrošinātu, ka jūsu e-pasta ziņojumi nekad nenonāk nepareizās rokās.

Lai to izdarītu, mums ir jāveic dažas nelielas izmaiņas iepriekš izveidotajā programmā.

Pirmais solis, protams, ir ssl bibliotēka kopā ar smtplib. The ssl bibliotēka dod jums iespēju izveidot drošu SSL kontekstu un sazināties pa šifrētu tīklu, izveidojot savienojumu ar konkrētiem abiem galiem.

Drošs SSL konteksts ir nekas cits kā šifru, protokolu versiju, uzticamu sertifikātu, TLS opciju un TLS paplašinājumu kolekcija.

Pēc tam mēs varam norādīt TLS portu un pievienot dažus ssl bibliotēkas funkcijas, lai izveidotu drošu e-pasta sūtītāju.

Kods ar visām veiktajām izmaiņām izskatās apmēram šādi:

importēt smtplib, ssl
smtpServer = "smtp.gmail.com"
osta = 587
myEmail = "[email protected]"
parole = "mans parole"
# e-pasts un parole var būt arī lietotāja ievades lauki
context = ssl.create_default_context ()
newEmail = No: No personas
Kam: Personai
Temats: E-pasta pārbaude
Šis ir e-pasta ziņojuma pamatteksts.

mēģiniet:
serveris = smtplib. SMTP (smtpServer, ports)
server.starttls (konteksts = konteksts)
server.login (newEmail, parole)
izņemot izņēmumu kā e:
izdrukāt ("e-pastu nevarēja nosūtīt.")
visbeidzot:
server.quit ()

Lai novērstu pēkšņas programmas avārijas, tāpat kā iepriekš, jums jāizveido un jāizmanto SMTP eksemplārs mēģinājumu izņēmuma blokā.

Ko jūs varat darīt ar šo Python skriptu

Tagad, kad esat apguvis lielisko un pārsteidzoši noderīgo prasmi e-pastus automatizēt, izmantojot kodu, varat to pielietot jebkurā platformā, kurai nepieciešama e-pasta ziņojumu sūtīšana uz daudzveidīgu adresātu sarakstu.

Sākot no tā izmantošanas personiskajā vietnē, lai nosūtītu automatizētus apstiprinājuma e-pastus, līdz Ziemassvētku kartīšu sūtīšanai vai ielūgumi pie ģimenes un draugiem, šī mazā Python skripta lietojumus ierobežo tikai jūsu radošums.

Turklāt šī ir tikai viena no daudzajām lieliskajām lietām, ko varat darīt ar Python. Pateicoties visuresošajam izstrādātāju atbalstam un viegli apgūstamai sintaksei, Python prasmju apgūšana nekad nav bijusi tik vienkārša.

Lai turpinātu veidot foršas lietas ar kodu, skatiet mūsu ceļvedi, kā to izdarīt izveidojiet pats savu Telegram bot ar Python 3!

E-pasts
Kā uzlabot Python un AI prasmes, izmantojot Keras, Pytorch, Tensorflow un citus

Jauniniet savas programmēšanas un tīmekļa izstrādes prasmes Python, mākslīgā intelekta, Keras, PyTorch un citur

Saistītās tēmas
  • Programmēšana
  • Gmail
  • E-pasta padomi
  • Python
  • Uzdevumu automatizācija
Par autoru
Jašs Čelani (Publicēti 8 raksti)

Jašs ir topošs datorzinātņu students, kurš mīl būvēt lietas un rakstīt par visām tehnoloģiskajām lietām. Brīvajā laikā viņam patīk spēlēt skvošu, lasīt jaunākā Murakami eksemplāru un medīt pūķus Skyrim.

Vairāk no Yash Chellani

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam par tehniskiem padomiem, atsauksmēm, bezmaksas e-grāmatām un ekskluzīviem piedāvājumiem!

Vēl viens solis !!!

Lūdzu, apstipriniet savu e-pasta adresi e-pastā, kuru tikko nosūtījām.

.