Paano Magpadala ng Mga Awtomatikong Mensahe sa Email sa Python

Paano Magpadala ng Mga Awtomatikong Mensahe sa Email sa Python

Habang nag-aalok ang mga kliyente ng email ng komersyo ng kaginhawaan ng isang madaling gamitin ng GUI, madalas na kulang sila sa kakayahang umangkop at napapasadyang nais ng maraming mga tagabuo o tagalikha ng nilalaman para sa kanilang mga pangangailangan sa pag-email.





Maging para sa pagpapadala ng isang email ng pasasalamat sa isang bagong subscriber sa iyong social media channel o pagdaragdag ng pag-andar ng email sa iyong pinakabagong proyekto, ang kakayahang magpadala ng mga awtomatikong mensahe gamit ang SMTP sa Python ay isang bagay na tiyak na magagamit.





Magbasa pa upang malaman kung paano ka makakakuha ng isang script ng Python upang magpadala ng mga email na tumatakbo sa iyong machine ngayon.





Ano ang SMTP?

Upang mailagay ito nang simple, ang SMTP, o Simple Mail Transfer Protocol, ay isang protocol ng komunikasyon para sa mga mail server upang makapagpadala ng email sa internet.

Ito ay isang mahalagang bahagi ng layer ng application ng TCP / IP suite, na kung saan ay isang hanay ng mga protokol na ginagamit para sa komunikasyon sa internet o iba pang mga katulad na network. Sa isang network kung saan ipinatupad ang SMTP, isang proseso na kilala bilang itago at ipadala tumutulong sa paglipat ng mail sa mga network.



Sa bawat endpoint, ang software na kilala bilang Mail Transfer Agent (MTA) ay gumagamit ng store at pasulong upang mapadali ang komunikasyon sa pagitan ng mga kalahok na SMTP server. Ang pangunahing papel ng SMTP, samakatuwid, ay simpleng idikta kung saan at paano lumilipat ang mail mula sa isang punto patungo sa isa pa sa isang network.

Nagsisimula

Kailangan mong magkaroon ng isang email account upang magamit para sa pagpapadala ng mga email gamit ang program na ito. Ito ay dahil gagamitin namin ang serbisyo ng SMTP ng email client upang magpadala ng mga email. Para sa tutorial na ito, gagamitin namin ang Gmail.





Maaari mo ring gamitin ang isang lokal na server ng pag-debug ng SMTP upang magpadala ng mga email sa pagsubok, ngunit sa ngayon gagamit kami ng isang email account upang magpadala ng mga email dahil mas madaling maunawaan ito.

Posible na gumamit lamang ng isang mayroon nang Gmail account, ngunit habang nagpe-play ka sa iyong programa, maaaring malapit na itong mapuno ng mga pagsubok na email. Ito ang dahilan kung bakit inirerekumenda namin ang paglikha ng isang 'itapon' account para sa layunin ng pagsubok.





Ngayon, i-on ang pagpipilian sa payagan ang mga hindi gaanong secure na mga app upang ma-access ang iyong Gmail account. Ito ay isa pang dahilan upang gumamit ng isang itapon na email dahil hindi inirerekumenda na maglaro kasama ang mga setting ng privacy ng iyong pangunahing email.

Pagsulat ng Email sa Python

Ang Python 3 ay paunang naka-install na may isang module na tinatawag na smtplib (maikli para sa smtp library), na maaaring magamit upang gumana sa mga server ng SMTP.

Tulad ng anumang iba pang module ng Python, ang unang bagay na kailangan mong gawin ay ang mag-import ng smtplib.

import smtplib

Pinasimulan ang isang Bagay na SMTP

Ngayon, maaari mong gamitin ang smtplib upang lumikha ng isang bagay na SMTP, na magbibigay sa iyo ng halos lahat ng pag-andar ng isang maginoo na email client. Gayunpaman, ang mga pagpapaandar ng isang bagay na SMTP ay maaari lamang magamit sa pamamagitan ng mga pamamaraan ng halimbawa. Kaya, natural, ang susunod na hakbang ay upang ideklara ang isang halimbawa ng object.

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

I-configure nito ang bagay na SMTP upang magpadala ng mga email gamit ang SMTP server ng Google.

Pagkatapos nito, tinukoy namin ang mga nagpadala at tatanggap ng mga email. Dito madaling gamiting ang Gmail account na ginawa mo kanina.

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

Ang isang bagay na dapat tandaan dito ay ang listahan ng tatanggap ay talagang isang array, na nangangahulugang ito ay dinisenyo upang mag-imbak ng mga halagang hindi atomiko. Bilang isang resulta, maaari mo ring tukuyin ang isang buong listahan ng pag-mail sa larangang ito!

Pagsulat ng Mensahe

Masasabing ang pinaka-prangkang bahagi ng proseso, narito kailangan mong maglagay ng mga halagang karaniwang nais mong idagdag kapag bumubuo ng isang bagong email. Kasama rito:

  • Mga detalye ng nagpadala
  • Mga detalye ng tatanggap
  • Paksa
  • Katawan ng Mensahe

Ang mga patlang na ito ay pinagsama sa loob ng mga marka ng triple-quote at na-demarkate tulad ng sumusunod:

hindi masimulan ng aparato ang code 10
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

Pagpapadala ng Email

Sa wakas, maaari naming gamitin ang sendmail command upang ipadala ang mail mula sa iyong SMTP server sa server ng tatanggap.

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

Ngayon, mayroon lamang isang panghuling hakbang: muling pag-aayos ng code upang maiwasan ang anumang mahuhulaan na pag-crash ng programa.

Pag-troubleshoot sa Iyong Program sa Email sa Python

Minsan, ang iyong SMTP server ay maaaring mabibigo upang maitaguyod ang isang koneksyon sa tatanggap, o maaaring may isang isyu sa pagpapadala ng isang email mula sa isang SMTP port sa iba pa. Sa ganitong kaganapan, maaaring mag-crash ang iyong programa nang hindi inaasahan.

Upang maisip ang mga nasabing posibilidad, maaari kang gumamit ng a subukan-maliban harangan at ilagay ang mga pahayag na madaling kapitan ng error sa loob ng subukan mo harangan Ang iyong buong programa, kasama ang pagsubok na maliban sa pag-block, ay dapat magmukhang ganito:

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

Pag-secure ng Iyong Mga Email

Kung balak mong gamitin ang Python sa isang setting na totoong mundo upang magpadala ng mga email, mahalagang tiyakin na ang komunikasyon ay ligtas sa magkabilang dulo.

Ang paggamit ng isang simpleng SMTP server na may default port ay hindi nagbibigay ng anumang layer ng pag-encrypt sa komunikasyon. Nangangahulugan ito na kung ang anumang third-party ay nakikinig sa iyong network, maaari nitong ma-access ang iyong mga kredensyal sa pag-login at ang impormasyong nilalaman sa iyong email.

Ang isang paraan upang maiwasan ang problemang ito ay ang paggamit ng TLS (Transport Layer Security) na protocol upang i-encrypt ang iyong komunikasyon. Ito ang parehong protokol na ginamit ng mga pangunahing kliyente sa email tulad ng Gmail at Outlook upang matiyak na ang iyong mga email ay hindi mahuhulog sa maling kamay.

Upang magawa ito, kailangan naming gumawa ng kaunting mga pagbabago sa program na nilikha namin kanina.

Ang unang hakbang, syempre, ay i-import ang ssl silid aklatan kasama smtplib . Ang ssl binibigyan ka ng library ng kakayahang lumikha ng isang ligtas na konteksto ng SSL at pakikipag-usap sa isang naka-encrypt na network sa pamamagitan ng pagkonekta sa mga tukoy na port sa magkabilang dulo.

Ang isang ligtas na konteksto ng SSL ay walang iba kundi ang isang koleksyon ng mga cipher, bersyon ng protocol, mga pinagkakatiwalaang sertipiko, pagpipilian ng TLS at mga extension ng TLS.

Kasunod nito, maaari naming tukuyin ang port ng TLS at idagdag sa ilan ssl gumagana ang library upang lumikha ng isang ligtas na emailer.

Ang code, kasama ang lahat ng mga pagbabagong nagawa, ay ganito ang hitsura:

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

Tulad ng dati, dapat kang lumikha at gumamit ng halimbawa ng SMTP sa isang pagsubok na maliban sa pag-block upang maiwasan ang anumang biglang pag-crash ng programa.

patayin ang mga abiso sa email windows 10

Ano ang Magagawa Mo Sa Python Script na Ito

Ngayon na kinuha mo ang kahanga-hangang at nakakagulat na kapaki-pakinabang na kasanayan sa pag-automate ng mga email gamit ang code, maaari mo itong ilapat sa anumang platform na nangangailangan ng pagpapadala ng mga email sa magkakaibang listahan ng pag-mail.

Mula sa paggamit nito sa iyong personal na website upang magpadala ng mga awtomatikong email ng pagkilala sa paggamit nito upang mag-email sa mga Christmas card o mga paanyaya sa iyong pamilya at mga kaibigan, ang paggamit ng maliit na script na Python na ito ay nalilimitahan lamang ng iyong sariling pagkamalikhain.

Gayundin, ito ay isa lamang sa maraming mga kahanga-hangang bagay na magagawa mo sa Python. Sa pamamagitan ng malawak na suporta ng developer at madaling malaman na syntax, ang pagkuha ng kasanayan sa Python ay hindi kailanman naging madali.

Upang magpatuloy sa pagbuo ng mga cool na bagay na may code, tingnan ang aming gabay sa kung paano buuin ang iyong sariling Telegram bot na may Python 3 !

Magbahagi Magbahagi Mag-tweet Email Paano I-upgrade ang Iyong Mga Kasanayan sa Python at AI gamit ang Keras, Pytorch, Tensorflow, at Higit Pa

I-upgrade ang iyong mga kasanayan sa pag-unlad at pag-unlad sa web sa Python, Artipisyal na Katalinuhan, Keras, PyTorch, at marami pa

Basahin Susunod
Mga Kaugnay na Paksa
  • Programming
  • Gmail
  • Mga Tip sa Email
  • Sawa
  • Pag-aautomat ng Gawain
Tungkol sa May-akda Yash Chellani(10 Mga Artikulo Na-publish)

Si Yash ay isang naghahangad na mag-aaral ng computer science na gustong bumuo ng mga bagay at magsulat tungkol sa lahat ng mga bagay na tech. Sa kanyang libreng oras, gusto niyang maglaro ng Squash, basahin ang isang kopya ng pinakabagong Murakami, at manghuli ng mga dragon sa Skyrim.

Higit pa Mula kay Yash Chellani

Mag-subscribe sa aming newsletter

Sumali sa aming newsletter para sa mga tip sa tech, pagsusuri, libreng ebook, at eksklusibong deal!

Mag-click dito upang mag-subscribe