Kā nosūtīt automātiskus e -pasta ziņojumus Python

Kā nosūtīt automātiskus e -pasta ziņojumus Python

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





Neatkarīgi no tā, vai nosūtāt pateicības e -pastu jaunam abonentam savā sociālo mediju kanālā vai pievienojat e -pasta funkcionalitāti savam jaunākajam projektam, iespēja nosūtīt automatizētus ziņojumus, izmantojot SMTP Python, noteikti noderēs.





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



Kas ir SMTP?

Vienkārši sakot, SMTP jeb 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 lietojumprogrammu 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 pazīstams kā uzglabāt un pārsūtīt palīdz pārvietot pastu pa tīkliem.



Katrā parametrā programmatūra, kas pazīstama kā pasta pārsūtīšanas aģents (MTA), izmanto uzglabāšanu 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

Lai nosūtītu e -pastus, izmantojot šo programmu, jums ir nepieciešams e -pasta konts. Tas ir tāpēc, ka e -pasta sūtīšanai izmantosim e -pasta klienta SMTP pakalpojumu. Šajā apmācībā mēs izmantosim Gmail.





Pārbaudes e -pasta ziņojumu nosūtīšanai varat izmantot arī vietējo SMTP atkļūdošanas serveri, taču pagaidām e -pasta ziņojumu nosū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 pārbaudes e -pastiem. Tāpēc mēs iesakām testēšanas nolūkos izveidot “izmetamo” kontu.





Tagad ieslēdziet opciju atļaut mazāk drošas lietotnes lai piekļūtu savam Gmail kontam. Šis ir vēl viens iemesls, lai izmantotu izmetamo e -pastu, jo nav ieteicams spēlēties 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), ko var izmantot darbam ar SMTP serveriem.

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

import smtplib

SMTP objekta inicializēšana

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

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

Tādējādi SMTP objekts tiek konfigurēts, lai izsūtītu 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 iepriekš izveidotais Gmail konts.

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

Šeit jāņem vērā viena lieta-saņēmēju saraksts patiesībā ir masīvs, kas nozīmē, ka tas ir paredzēts ar atomu nesaistītu vērtību glabāšanai. Tā rezultātā šajā laukā varat norādīt pat visu adresātu sarakstu!

Ziņas rakstīšana

Iespējams, visvienkāršākā procesa daļa, šeit jums jāievada vērtības, kuras parasti pievienojat, rakstot 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 ir norobežoti šādi:

kā savienot lidaparātus ar android
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

E -pasta sūtīšana

Visbeidzot, mēs varam izmantot komandu sendmail, lai nosūtītu pastu no jūsu SMTP servera uz adresāta serveri.

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

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

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

Dažreiz jūsu SMTP serverim var neizdoties izveidot savienojumu ar saņēmēja savienojumu, vai arī var rasties problēma, nosūtot e -pastu no viena SMTP porta uz citu. Šādā gadījumā jūsu programma var negaidīti avarēt.

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

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 -pastu nodrošināšana

Ja plānojat izmantot Python reālā vidē, lai nosūtītu e-pastus, 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 saziņai nenodrošina nekādu šifrēšanas slāni. Tas nozīmē, ka, ja jūsu tīklā ieklausās kāda trešā puse, tā var piekļūt jūsu pieteikšanās akreditācijas datiem un e-pastā esošajai informācijai.

Viens veids, kā apiet šo problēmu, ir TLS (transporta slāņa drošības) protokola izmantošana, lai šifrētu sakarus. Š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 importēt ssl bibliotēka kopā ar smtplib . The ssl bibliotēka dod jums iespēju izveidot drošu SSL kontekstu un sazināties šifrētā tīklā, savienojot ar noteiktiem portiem abos galos.

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

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

Tāpat kā iepriekš, jums jāizveido un jāizmanto SMTP gadījums izmēģinājuma blokā, lai novērstu pēkšņas programmas avārijas.

kā atjaunot fotoattēlus operētājsistēmā Android

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

Tagad, kad esat apguvis lielisko un pārsteidzoši noderīgo prasmi automatizēt e -pasta ziņojumus, izmantojot kodu, varat to piemērot jebkurai platformai, kurai nepieciešams sūtīt e -pastus uz daudzveidīgu adresātu sarakstu.

Sākot no tā izmantošanas savā personīgajā vietnē, lai nosūtītu automātiskus apstiprinājuma e -pasta ziņojumus, un beidzot ar to, lai nosūtītu Ziemassvētku kartītes vai ielūgumus savai ģimenei un draugiem, šī mazā Python skripta izmantošanu 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ūstamajai sintaksei, Python prasmju apgūšana nekad nav bijusi tik vienkārša.

Lai turpinātu veidot interesantas lietas ar kodu, skatiet mūsu ceļvedi, kā to izdarīt izveidojiet savu Telegram robotu, izmantojot Python 3 !

Kopīgot Kopīgot Čivināt E -pasts Kā uzlabot savas Python un AI prasmes, izmantojot Keras, Pytorch, Tensorflow un citas

Uzlabojiet savas programmēšanas un tīmekļa izstrādes prasmes, izmantojot Python, mākslīgo intelektu, Keras, PyTorch un citus

Lasīt Tālāk
Saistītās tēmas
  • Programmēšana
  • Gmail
  • E -pasta padomi
  • Python
  • Uzdevumu automatizācija
Par autoru Jašs Čellāni(10 raksti publicēti)

Jašs ir topošais datorzinātņu students, kuram patīk 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, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu