Ehkki ärilised e-posti kliendid pakuvad kasutajasõbraliku graafilise kasutajaliidese mugavust, puudub neil sageli paindlikkus ja kohandatavus, mida paljud arendajad või sisuloojad soovivad oma e-kirjade saatmiseks vajadustele.

Olgu selleks siis sotsiaalmeediakanali uuele tellijale tänukirja saatmine või e-posti funktsionaalsuse lisamine teie uusim projekt, on võimalus Pythonis SMTP-ga automatiseeritud sõnumeid saata, mis kindlasti sisse tuleb käepärane.

Loe edasi, kuidas saada Pythoni skript teie arvutis töötavate meilide saatmiseks täna.

Mis on SMTP?

Lihtsustatult öeldes on SMTP ehk lihtne postiedastuse protokoll e-posti serverite sideprotokoll e-posti edastamiseks Interneti kaudu.

See on lahutamatu osa TCP / IP komplekti rakenduskihist, mis on Interneti-ühenduse või muude sarnaste võrkude kaudu suhtlemiseks kasutatavate protokollide kogum. Võrgus, kus on rakendatud SMTP, on protsess tuntud kui pood ja edasi aitab meilil üle võrgu liikuda.

Igas otspunktis kasutab tarkvara Mail Transfer Agent (MTA) salvestamise ja edastamise hõlbustamiseks osalevate SMTP-serverite vahelist suhtlust. Seetõttu on SMTP peamine roll lihtsalt dikteerida, kus ja kuidas post võrgus ühest punktist teise liigub.

Alustamine

Selle programmi abil meilide saatmiseks peab teil olema e-posti konto. Seda seetõttu, et kasutame meilide saatmiseks e-posti kliendi SMTP-teenust. Selle õpetuse jaoks kasutame Gmaili.

Test-meilide saatmiseks võite kasutada ka kohalikku SMTP silumisserverit, kuid praegu kasutame meilide saatmiseks e-posti kontot, kuna see on intuitiivsem.

Olemasolevat Gmaili kontot on võimalik lihtsalt kasutada, kuid oma programmiga ringi mängides võib see peagi testimeilidega täis saada. Seetõttu soovitame testimiseks luua viskekonto.

Nüüd lülitage sisse valik lubada vähem turvalisi rakendusi oma Gmaili kontole juurdepääsemiseks. See on veel üks põhjus, miks kasutada visatavat e-posti, kuna pole soovitatav mängida oma peamise e-posti privaatsusseadetega.

E-kirja kirjutamine Pythonis

Python 3 on eelinstallitud koos mooduliga, mille nimi on smtplib (lühend smtp-teegist), mida saab kasutada SMTP-serveritega töötamiseks.

Nagu iga teine ​​Pythoni moodul, tuleb ka esimese asjana importida smtplib.

import smtplib

SMTP-objekti lähtestamine

Nüüd saate smtplibi abil luua SMTP-objekti, mis tagab teile suurema osa tavapärase e-posti kliendi funktsionaalsusest. Kuid SMTP-objekti funktsioone saab kasutada ainult eksemplarimeetodite abil. Nii et loomulikult on järgmine samm objekti eksemplari deklareerimine.

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

See konfigureerib SMTP-objekti Google'i SMTP-serveri abil e-kirju saatma.

Pärast seda täpsustame saatja ja saaja e-kirjad. Siin on kasulik varem loodud Gmaili konto.

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

Siinkohal tuleb märkida, et saajate nimekiri on tegelikult massiiv, mis tähendab, et see on mõeldud mitte-aatomiliste väärtuste salvestamiseks. Selle tulemusena saate sellele väljale määrata isegi terve meililist!

Sõnumi kirjutamine

Väidetavalt protsessi kõige otsesem osa, siin peate sisestama väärtused, mille lisate uue e-kirja koostamisel tavaliselt. See sisaldab:

  • Saatja andmed
  • Saaja andmed
  • Teema
  • Sõnumi sisu

Need väljad on kokku pandud kolmik jutumärkides ja piiritletud järgmiselt:

newEmail = Saatja: Isikult 
Kellele: Isikule
Teema: E-posti test
See on e-kirja sisu.

E-kirja saatmine

Lõpuks saame kasutada käsku sendmail, et saata teie SMTP-serverist kirjad saaja serverisse.

mySMTP.sendmail (emailSender, emailRecipients, newEmail)

Nüüd on vaid üks viimane samm: koodi ümberkorraldamine, et vältida programmi prognoositavaid krahhe.

Pythoni e-posti programmi tõrkeotsing

Mõnikord võib teie SMTP-server ebaõnnestuda ühenduse loomisega vastuvõtja omaga või võib olla probleem meili saatmisega ühest SMTP-porti teise. Sellisel juhul võib teie programm ootamatult kokku kukkuda.

Selliste võimaluste arvestamiseks võite kasutada a proovige välja blokeerida ja panna veaohtlikud avaldused proovige blokeerida. Kogu teie programm koos plokiga try-paitsi peaks välja nägema umbes selline:

import smtplib
emailSender = "[email protected]"
myThroaway = ‘[email protected]
emailRecipients = [myThroaway]
newEmail = Saatja: Isikult
Kellele: Isikule
Teema: E-posti test
See on e-kirja sisu.

proovige:
smtpObj = smtplib. SMTP (smtp.gmail.com)
mySMTP.sendmail (emailSender, emailRecipients, newEmail)
print („E-post on edukalt saadetud!”)
välja arvatud SMTPException:
print ("Viga: teie e-kirja saatmisel ilmnes viga.")

Teie e-kirjade turvamine

Kui kavatsete e-kirjade saatmiseks kasutada Pythoni reaalses keskkonnas, on oluline veenduda, et side oleks mõlemas otsas turvaline.

Lihtsa SMTP-serveri kasutamine vaikepordiga ei paku suhtlusele krüptimiskihti. See tähendab, et kui mõni kolmas osapool kuulab teie võrku, pääseb ta juurde teie sisselogimisandmetele ja teie meilis sisalduvale teabele.

Üks võimalus sellest probleemist mööda hiilida on TLS (Transport Layer Security) protokolli kasutamine oma side krüptimiseks. See on sama protokoll, mida kasutavad suuremad e-posti kliendid, nagu Gmail ja Outlook, tagamaks, et teie e-kirjad ei satuks kunagi valedesse kätesse.

Selleks peame varem loodud programmis tegema mõned väiksemad muudatused.

Esimene samm on loomulikult ssl raamatukogu koos smtplib. The ssl teek annab teile võimaluse luua turvaline SSL-kontekst ja suhelda krüptitud võrgu kaudu, luues ühenduse mõlema otsa kindlate pordidega.

Turvaline SSL-kontekst pole muud kui šifrite, protokolliversioonide, usaldusväärsete sertifikaatide, TLS-i suvandite ja TLS-i laienduste kogu.

Pärast seda saame määrata TLS-pordi ja lisada mõne ssl teegi funktsioonid turvalise meilisaatja loomiseks.

Kood koos kõigi tehtud muudatustega näeb välja umbes selline:

import smtplib, ssl
smtpServer = "smtp.gmail.com"
sadam = 587
myEmail = "minu [email protected]"
parool = "minu_parool"
# email ja parool võivad olla ka kasutaja sisendväljad
context = ssl.create_default_context ()
newEmail = Saatja: Isikult
Kellele: Isikule
Teema: E-posti test
See on e-kirja sisu.

proovige:
server = smtplib. SMTP (smtpServer, port)
server.starttls (kontekst = kontekst)
server.login (newEmail, parool)
välja arvatud erand kui e:
print ("e-posti aadressi ei õnnestunud saata.")
lõpuks:
server.quit ()

Nagu enne, peaksite programmi järskude krahhide vältimiseks looma ja kasutama SMTP-eksemplari proovimisväljaandes.

Mida saate selle Pythoni skriptiga teha

Nüüd, kui olete omandanud suurepärase ja üllatavalt kasuliku oskuse e-kirju koodi abil automatiseerida, saate seda rakendada igale platvormile, mis nõuab meilide saatmist mitmekülgsesse meililoendisse.

Alates selle kasutamisest oma isiklikul veebisaidil automatiseeritud kinnitusmeilide saatmiseks kuni jõulukaartide saatmiseks või kutsed oma perele ja sõpradele, on selle väikese Pythoni skripti kasutus piiratud ainult teie enda poolt loovus.

Samuti on see ainult üks paljudest ägedatest asjadest, mida saate Pythoniga teha. Oma üldlevinud arendajatoe ja hõlpsasti õpitava süntaksiga pole Pythoni oskuste omandamine kunagi varem olnud nii lihtne.

Koodiga lahedate asjade ehitamise jätkamiseks vaadake meie juhendit, kuidas seda teha ehitage Python 3-ga oma Telegrami bot!

E-post
Kuidas Pythoni ja tehisintellekti oskusi uuendada Kerase, Pytorchi, Tensorflowi ja muu abil

Uuendage oma programmeerimis- ja veebiarenduse oskusi Pythonis, tehisintellektis, Kerases, PyTorchis ja mujal

Seotud teemad
  • Programmeerimine
  • Gmail
  • E-posti näpunäited
  • Python
  • Ülesande automatiseerimine
Autori kohta
Yash Chellani (Avaldatud 8 artiklit)

Yash on pürgiv arvutiteaduse üliõpilane, kes armastab asju ehitada ja kõigest tehnikast kirjutada. Vabal ajal meeldib talle mängida Squashi, lugeda uusima Murakami koopiat ja Skyrimis lohesid jahtida.

Veel Yash Chellanilt

Telli meie uudiskiri

Liituge meie uudiskirjaga, kus leiate tehnilisi näpunäiteid, ülevaateid, tasuta e-raamatuid ja eksklusiivseid pakkumisi!

Veel üks samm !!!

Palun kinnitage oma e-posti aadress meilis, mille me just saatsime.

.