Kuidas saata automaatseid meilisõnumeid Pythonis

Kuidas saata automaatseid meilisõnumeid Pythonis

Kuigi kaubanduslikud e-posti kliendid pakuvad kasutajasõbraliku graafilise kasutajaliidese mugavust, puudub neil sageli paindlikkus ja kohandatavus, mida paljud arendajad või sisuloojad oma e-posti vajaduste jaoks soovivad.





Olgu siis tänukirja saatmine uuele tellijale oma sotsiaalmeediakanalis või e -posti funktsionaalsuse lisamine oma viimasele projektile - võimalus Pythonis SMTP abil automaatsõnumeid saata on kindlasti kasulik.





Lugege edasi, et teada saada, kuidas saate Pythoni skripti saata täna teie arvutis töötavaid kirju.





Mis on SMTP?

Lihtsamalt öeldes on SMTP või Simple Mail Transfer Protocol kommunikatsiooniprotokoll e -posti serveritele e -kirjade edastamiseks Interneti kaudu.

See on TCP/IP komplekti rakenduskihi lahutamatu osa, mis on Interneti või muude sarnaste võrkude kaudu suhtlemiseks kasutatavate protokollide komplekt. Võrgus, kus SMTP on rakendatud, nimetatakse protsessi salvestada ja edasi saata aitab e -posti üle võrkude liigutada.



Igas lõpp -punktis kasutab tarkvara Mail Transfer Agent (MTA), mida tuntakse salvestamise ja edastamise kaudu, et hõlbustada suhtlemist osalevate SMTP -serverite vahel. Seetõttu on SMTP peamine roll lihtsalt dikteerida, kus ja kuidas post võrgus ühest punktist teise liigub.

Alustamine

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





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

Võimalik on lihtsalt kasutada olemasolevat Gmaili kontot, kuid oma programmiga mängides võib see peagi testmeile täis saada. Seetõttu soovitame testimiseks luua loobumiskonto.





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

E -kirja kirjutamine Pythonis

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

Nagu iga teine ​​Pythoni moodul, tuleb kõigepealt importida smtplib.

import smtplib

SMTP -objekti lähtestamine

Nüüd saate smtplibi abil luua SMTP -objekti, mis pakub teile enamikku tavapärase e -posti kliendi funktsioone. SMTP -objekti funktsioone saab aga kasutada ainult eksemplari meetodite abil. Seega on järgmine samm loomulikult objekti eksemplari deklareerimine.

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

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

Pärast seda määrame saatja ja saaja e -kirjad. Siin tuleb appi varem loodud Gmaili konto.

emailSender = senderMail@sender.com
myThroaway = 'myEmail@gmail.com'
emailRecipients = [myThroaway]

Siinkohal tuleb märkida, et adressaatide loend on tegelikult massiiv, mis tähendab, et see on loodud mitte-aatomiväärtuste salvestamiseks. Selle tulemusel saate sellel väljal määrata isegi terve meililisti!

Sõnumi kirjutamine

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

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

Need väljad on kokku pandud kolmes jutumärgis ja on piiritletud järgmiselt.

okei google, mul on küsimus
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

E -kirja saatmine

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

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

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

Pythoni meiliprogrammi tõrkeotsing

Mõnikord ei pruugi teie SMTP -server luua ühendust adressaadiga või võib tekkida probleem e -kirjade saatmisel ühest SMTP -pordist teise. Sellisel juhul võib teie programm ootamatult kokku kukkuda.

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

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.')

E -kirjade turvamine

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

Lihtsa SMTP -serveri kasutamine vaikimisi kasutatava pordiga ei anna sidele mingit krüptimiskihti. See tähendab, et kui mõni kolmas osapool teie võrgus kuulab, pääseb ta juurde teie sisselogimisandmetele ja teie meilis sisalduvale teabele.

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

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

Esimene samm on muidugi importida ssl raamatukogu koos smtplib . The ssl raamatukogu annab teile võimaluse luua turvaline SSL -kontekst ja suhelda krüptitud võrgu kaudu, ühendades mõlemas otsas kindlad pordid.

Turvaline SSL -kontekst ei ole midagi muud kui šifrite, protokolliversioonide, usaldusväärsete sertifikaatide, TLS -suvandite ja TLS -laiendite kogum.

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

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

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()

Nagu varemgi, peaksite SMTP eksemplari looma ja kasutama prooviväljas plokis, et vältida programmi järsku kokkujooksmist.

kuidas häkkida ruuteri parooli

Mida saate selle Pythoni skriptiga teha?

Nüüd, kui olete omandanud suurepärase ja üllatavalt kasuliku oskuse e -kirju koodiga automatiseerida, saate seda rakendada mis tahes platvormil, mis nõuab e -kirjade saatmist mitmekesisele meililistile.

Alates selle kasutamisest oma isiklikul veebisaidil automaatsete kinnitusmeilide saatmiseks kuni jõulukaartide või kutsete saatmiseni oma perele ja sõpradele piirab selle väikese Pythoni skripti kasutamist ainult teie enda loovus.

Lisaks on see vaid üks paljudest vingetest asjadest, mida saate Pythoni abil teha. Tänu oma üldlevinud arendajatoele ja kergesti õpitavale süntaksile pole Pythoni oskuste omandamine kunagi olnud lihtsam.

Koodiga lahedate asjade loomise jätkamiseks vaadake meie juhendit, kuidas seda teha looge Python 3 abil oma telegrammi robot !

Jaga Jaga Piiksuma E -post Kuidas oma Pythoni ja AI oskusi täiendada Keras, Pytorch, Tensorflow jt abil

Täiendage oma programmeerimis- ja veebiarendusoskusi Pythonis, tehisintellektis, Keras, PyTorchis ja mujal

Loe edasi
Seotud teemad
  • Programmeerimine
  • Gmail
  • Nõuanded e -posti teel
  • Python
  • Ülesannete automatiseerimine
Autori kohta Yash Chellani(10 artiklit avaldatud)

Yash on ambitsioonikas informaatikatudeng, kes armastab asju ehitada ja kirjutada kõigest tehnikast. Vabal ajal meeldib talle Squashi mängida, lugeda viimast Murakami koopiat ja jahtida Skyrimis draakoneid.

Veel Yash Chellanilt

Telli meie uudiskiri

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

Tellimiseks klõpsake siin