Cara Menghantar Mesej E-mel Automatik di Python

Cara Menghantar Mesej E-mel Automatik di Python

Walaupun pelanggan e-mel komersial menawarkan kemudahan GUI yang mesra pengguna, mereka sering kekurangan fleksibiliti dan penyesuaian yang diinginkan oleh banyak pembangun atau pencipta kandungan untuk keperluan e-mel mereka.





Baik untuk menghantar e-mel terima kasih kepada pelanggan baru di saluran media sosial anda atau menambahkan fungsi e-mel ke projek terbaru anda, kemampuan untuk menghantar mesej automatik menggunakan SMTP di Python adalah sesuatu yang pasti akan berguna.





Baca terus untuk mengetahui bagaimana anda boleh mendapatkan skrip Python untuk menghantar e-mel yang berjalan di mesin anda hari ini.





Apa itu SMTP?

Sederhananya, SMTP, atau Simple Mail Transfer Protocol, adalah protokol komunikasi untuk pelayan e-mel untuk menghantar e-mel melalui internet.

Ini adalah bahagian yang tidak terpisahkan dari lapisan aplikasi suite TCP / IP, yang merupakan sekumpulan protokol yang digunakan untuk komunikasi melalui internet atau rangkaian serupa lainnya. Dalam rangkaian di mana SMTP dilaksanakan, proses yang dikenal sebagai menyimpan dan maju membantu menggerakkan mel ke seluruh rangkaian.



Pada setiap titik akhir, perisian yang dikenali sebagai Mail Transfer Agent (MTA) menggunakan store dan forward untuk memudahkan komunikasi antara pelayan SMTP yang mengambil bahagian. Oleh itu, peranan utama SMTP hanyalah untuk menentukan di mana dan bagaimana mel bergerak dari satu titik ke titik lain dalam rangkaian.

Bermula

Anda perlu mempunyai akaun e-mel untuk digunakan untuk menghantar e-mel menggunakan program ini. Ini kerana kami akan menggunakan perkhidmatan SMTP pelanggan e-mel untuk menghantar e-mel. Untuk tutorial ini, kami akan menggunakan Gmail.





Anda juga dapat menggunakan pelayan penyahpepijatan SMTP tempatan untuk mengirim e-mel ujian, tetapi buat masa ini kami akan menggunakan akaun e-mel untuk menghantar e-mel kerana lebih intuitif.

Anda hanya boleh menggunakan akaun Gmail yang ada, tetapi semasa anda bermain-main dengan program anda, akaun itu akan segera dipenuhi dengan e-mel ujian. Inilah sebabnya mengapa kami mengesyorkan membuat akaun ‘membuang’ untuk tujuan pengujian.





Sekarang, hidupkan pilihan untuk membenarkan aplikasi yang kurang selamat untuk mengakses akaun Gmail anda. Ini adalah sebab lain untuk menggunakan e-mel membuang kerana tidak digalakkan bermain-main dengan tetapan privasi e-mel utama anda.

Menulis E-mel di Python

Python 3 dilengkapi dengan modul yang disebut smtplib (kependekan dari perpustakaan smtp), yang dapat digunakan untuk bekerja dengan pelayan SMTP.

Seperti modul Python lain, perkara pertama yang harus anda lakukan ialah mengimport smtplib.

import smtplib

Memulakan Objek SMTP

Sekarang, anda boleh menggunakan smtplib untuk membuat objek SMTP, yang akan memberi anda sebahagian besar fungsi klien e-mel konvensional. Namun, fungsi objek SMTP hanya dapat digunakan melalui metode contoh. Jadi, secara semula jadi, langkah seterusnya adalah untuk menyatakan contoh objek.

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

Ini mengkonfigurasi objek SMTP untuk menghantar e-mel menggunakan pelayan SMTP Google.

Selepas ini, kami menentukan e-mel pengirim dan penerima. Di sinilah akaun Gmail yang anda buat lebih awal berguna.

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

Satu perkara yang perlu diperhatikan di sini ialah senarai penerima sebenarnya adalah tatasusunan, yang bermaksud bahawa senarai itu dirancang untuk menyimpan nilai bukan atom. Hasilnya, anda boleh menentukan keseluruhan senarai mel dalam bidang ini!

Menulis Mesej

Boleh dikatakan bahagian yang paling mudah dalam proses ini, di sini anda harus memasukkan nilai yang biasanya anda tambahkan semasa membuat e-mel baru. Ini termasuk:

  • Maklumat pengirim
  • Maklumat Penerima
  • Subjek
  • Badan mesej

Medan ini disatukan di dalam tanda petik tiga dan dibatasi seperti berikut:

cara mencerminkan teks dalam perkataan
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

Menghantar E-mel

Akhirnya, kita boleh menggunakan arahan sendmail untuk menghantar e-mel dari pelayan SMTP anda ke pelayan penerima.

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

Sekarang, hanya ada satu langkah terakhir: menyusun semula kod untuk mengelakkan kemalangan program yang diramalkan.

Menyelesaikan Masalah Program E-mel Python Anda

Kadang-kadang, pelayan SMTP anda mungkin gagal menjalin hubungan dengan penerima, atau mungkin ada masalah dengan menghantar e-mel dari satu port SMTP ke port yang lain. Sekiranya berlaku, program anda mungkin tidak dijangka.

Untuk mempertimbangkan kemungkinan tersebut, anda boleh menggunakan a cuba-kecuali blok dan masukkan pernyataan ralat di dalam cuba sekatan. Seluruh program anda, bersama dengan blok try-kecuali, akan kelihatan seperti ini:

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

Menjamin E-mel Anda

Sekiranya anda berhasrat menggunakan Python dalam suasana dunia nyata untuk menghantar e-mel, penting untuk memastikan bahawa komunikasi selamat di kedua-dua hujungnya.

Menggunakan pelayan SMTP sederhana dengan port lalai tidak memberikan lapisan penyulitan kepada komunikasi. Ini bermaksud bahawa jika ada pihak ketiga yang mendengarkan di rangkaian anda, pihaknya dapat mengakses bukti kelayakan masuk dan maklumat yang terdapat dalam e-mel anda.

Salah satu cara untuk mengatasi masalah ini adalah dengan menggunakan protokol TLS (Transport Layer Security) untuk menyulitkan komunikasi anda. Ini adalah protokol yang sama yang digunakan oleh klien e-mel utama seperti Gmail dan Outlook untuk memastikan bahawa e-mel anda tidak pernah jatuh ke tangan yang salah.

Untuk melakukannya, kita perlu membuat beberapa perubahan kecil pada program yang kita buat sebelumnya.

Langkah pertama, tentu saja, adalah mengimport ssl perpustakaan bersama dengan smtplib . The ssl perpustakaan memberi anda kemampuan untuk membuat konteks SSL yang selamat dan berkomunikasi melalui rangkaian yang disulitkan dengan menyambung ke port tertentu di kedua-dua hujungnya.

Konteks SSL yang selamat tidak lain adalah koleksi cipher, versi protokol, sijil dipercayai, pilihan TLS dan sambungan TLS.

Setelah ini, kita dapat menentukan port TLS dan menambah beberapa ssl perpustakaan berfungsi untuk membuat e-mel yang selamat.

Kodnya, dengan semua perubahan yang dibuat, kelihatan seperti ini:

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

Seperti sebelumnya, anda harus membuat dan menggunakan contoh SMTP dalam blok try-kecuali untuk mengelakkan kemalangan program tiba-tiba.

notepad ++ membandingkan muat turun pemalam

Apa Yang Anda Boleh Lakukan Dengan Skrip Python Ini

Sekarang setelah anda menggunakan kemahiran mengautomasikan e-mel dengan menggunakan kod yang luar biasa dan berguna, anda boleh menerapkannya ke platform mana pun yang memerlukan penghantaran e-mel ke senarai mel yang pelbagai.

Dari menggunakannya di laman web peribadi anda untuk menghantar e-mel pengakuan automatik hingga menggunakannya untuk menghantar e-mel kad Krismas atau jemputan kepada keluarga dan rakan anda, penggunaan skrip Python kecil ini hanya dibatasi oleh kreativiti anda sendiri.

Juga, ini adalah salah satu daripada banyak perkara hebat yang boleh anda lakukan dengan Python. Dengan sokongan pemaju di mana-mana dan sintaks yang mudah dipelajari, mengambil kemahiran Python tidak pernah semudah ini.

Untuk terus membina perkara menarik dengan kod, lihat panduan kami tentang cara melakukannya bina bot Telegram anda sendiri dengan Python 3 !

Berkongsi Berkongsi Tweet E-mel Cara Meningkatkan Kemahiran Python dan AI Anda dengan Keras, Pytorch, Tensorflow, dan Banyak Lagi

Tingkatkan kemahiran pengaturcaraan & pengembangan web anda di Python, Artificial Intelligence, Keras, PyTorch dan banyak lagi

Baca Seterusnya
Topik-topik yang berkaitan
  • Pengaturcaraan
  • Gmail
  • Petua E-mel
  • Python
  • Automasi Tugas
Mengenai Pengarang Yash Chellani(10 Artikel Diterbitkan)

Yash adalah seorang pelajar sains komputer yang bercita-cita tinggi untuk membina sesuatu dan menulis mengenai semua perkara teknologi. Pada masa lapang, dia suka bermain Squash, membaca salinan Murakami terbaru, dan memburu naga di Skyrim.

Lagi Dari Yash Chellani

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan