Python

Mengirim Email dengan Python

Mengirim Email dengan Python
Mengirim Email adalah salah satu tugas paling umum yang harus saya lakukan di aplikasi web dan proyek lain yang saya buat. Dengan Python, ini cukup mudah dan mudah dilakukan. Bahkan ketika kita perlu menggunakan beberapa templat yang telah ditentukan sebelumnya, Python membantu kita mengganti nilai placeholder dengan data aktual sehingga email akhir terlihat elegan dan penuh dengan detail yang membuat klien saya senang.

Dalam pelajaran ini, saya akan membagikan skrip yang saya gunakan untuk mengirim email ke pengguna aplikasi yang saya buat dan banyak lagi.

Apa yang akan kita lakukan??

Kami akan membuat program Python sederhana yang akan melakukan hal berikut:

Poin-poin ini membuat program ini lebih dekat dengan penggunaan pengiriman email di aplikasi Anda. Mari kita mulai.

File untuk email email

File yang berisi email untuk pengguna akan terlihat seperti ini:

Shubham [email protected]

Ini hanyalah file teks sederhana yang berisi nama pengguna dan email yang dipisahkan oleh spasi. Beberapa email telah dimasukkan dengan data setiap pengguna di baris baru. Kami menamai file ini pengguna.txt.

Menggunakan Template

Mari kita dengan cepat menentukan template yang akan kita gunakan dalam skrip kita untuk mengganti nilai:

Halo $PERSON_NAME,
Kami mengirim email ini menggunakan modul Python smtplib. Keren, kan??
Semoga harimu cerah!
Bersulang

Kami telah menggunakan string template $PERSON_NAME yang akan diganti dengan nama orang yang kita dapatkan dari pengguna.file txt saat mengirim email.

Mendapatkan data pengguna dari file

Langkah pertama untuk mengirim email ke pengguna adalah mengidentifikasi ke mana kita ingin mengirim email. Mari kita tulis fungsi Python yang akan menerima nama file dan mengembalikan kepada kami nama pengguna dan ID email tempat email harus dikirim:

def get_users_data(nama_file):
nama_pengguna = []
email_pengguna = []
dengan open(file_name, mode='r', encoding='utf-8') sebagai user_file:
untuk user_info di user_file:
nama pengguna.tambahkan(info_pengguna.berpisah()[0])
email_pengguna.tambahkan(info_pengguna.membagi()[1])
kembalikan nama_pengguna, email_pengguna

Dengan fungsi ini, kami hanya mengembalikan nama pengguna dan email yang kami dapatkan dari file.

Mendapatkan Objek Template

Sekarang, kita dapat mengurai template kita dan mendapatkan objek template dari file teks yang kita buat:

def read_template(nama_file):
dengan open(file_name, 'r', encoding='utf-8') sebagai msg_template:
msg_template_content = msg_template.Baca()
kembalikan Template(msg_template_content)

Dengan ini, kita akan mendapatkan kembali objek Template yang dapat kita gunakan untuk mengurai konten file dan membuat penggantian yang diperlukan untuk string template seperti nama pengguna.

Bagaimana pengiriman email dilakukan?

Sekarang setelah kita siap dengan desain template dan data pengguna, kita perlu memahami bagaimana email sebenarnya dikirim ke pengguna:

Menyiapkan koneksi SMTP

Mari kita akhirnya mendefinisikan fungsi yang akan mengirim email ke pengguna yang ditunjuk. Berikut adalah fungsinya:

def utama():
nama_pengguna, email_pengguna = get_users_data('pengguna.txt') # baca detail pengguna
message_template = read_template('pesan.txt')
# siapkan server SMTP
smtplib_server = smtplib.SMTP(host = = smtp.gmail.com', port=587)
smtplib_server.mulai ()
smtplib_server.masuk(SEND_FROM, EMAIL_PWD)
# Dapatkan setiap detail pengguna dan kirim email:
untuk nama, email dalam zip(nama_pengguna, email_pengguna):
multipart_message = MIMEMultipart() # buat pesan
# tambahkan nama orang yang sebenarnya ke templat pesan
pesan = pesan_templatetemp.pengganti(PERSON_NAME=nama.judul())
# Mencetak isi pesan demi kita
cetak (pesan)
# atur parameter pesan
multipart_message['From']=SEND_FROM
multipart_message['Ke']=email
multipart_message['Subject']="Email LinuxHint"
# tambahkan di badan pesan
multipart_message.lampirkan(MIMEText(msg, 'polos'))
# kirim pesan melalui server yang disiapkan sebelumnya.
smtplib_server.kirim_pesan(multipart_message)
del multipart_message
# Hentikan sesi SMTP dan tutup koneksi
smtplib_server.berhenti()

Dalam fungsi di atas, kami mengikuti setiap langkah yang kami nyatakan di bagian sebelumnya. Kami membangun koneksi SMTP dan menggunakannya untuk mengirim email.

Program lengkap

Di bagian terakhir, mari kita lihat program lengkap yang dapat digunakan untuk mengirim email ke pengguna yang ditunjuk:

impor smtplib
dari Template impor string
dari email.pantomim.multipart impor MIMEMultipart
dari email.pantomim.impor teks MIMEText
SEND_FROM = 'email-saya-sini'
EMAIL_PWD = 'sandi-saya-di sini'
def get_users_data(nama_file):
nama_pengguna = []
email_pengguna = []
dengan open(file_name, mode='r', encoding='utf-8') sebagai user_file:
untuk user_info di user_file:
nama pengguna.tambahkan(info_pengguna.berpisah()[0])
email_pengguna.tambahkan(info_pengguna.membagi()[1])
kembalikan nama_pengguna, email_pengguna
def read_template(nama_file):
dengan open(file_name, 'r', encoding='utf-8') sebagai msg_template:
msg_template_content = msg_template.Baca()
kembalikan Template(msg_template_content)
def utama():
nama_pengguna, email_pengguna = get_users_data('pengguna.txt') # baca detail pengguna
message_template = read_template('pesan.txt')
# siapkan server SMTP
smtplib_server = smtplib.SMTP(host = = smtp.gmail.com', port=587)
smtplib_server.mulai ()
smtplib_server.masuk(SEND_FROM, EMAIL_PWD)
# Dapatkan setiap detail pengguna dan kirim email:
untuk nama, email dalam zip(nama_pengguna, email_pengguna):
multipart_message = MIMEMultipart() # buat pesan
# tambahkan nama orang yang sebenarnya ke templat pesan
pesan = pesan_templatetemp.pengganti(PERSON_NAME=nama.judul())
# Mencetak isi pesan demi kita
cetak (pesan)
# atur parameter pesan
multipart_message['From']=SEND_FROM
multipart_message['Ke']=email
multipart_message['Subject']="Email LinuxHint"
# tambahkan di badan pesan
multipart_message.lampirkan(MIMEText(msg, 'polos'))
# kirim pesan melalui server yang disiapkan sebelumnya.
smtplib_server.kirim_pesan(multipart_message)
del multipart_message
# Hentikan sesi SMTP dan tutup koneksi
smtplib_server.berhenti()
jika __name__ == '__main__':
utama()

Saat kami menjalankan program ini dengan ID Gmail, Anda mungkin menghadapi masalah seperti ini:

Kesalahan SMTP Gmail


Ini karena Gmail tidak mengizinkan skrip biasa untuk menggunakan API Gmail. Untuk ini, Anda mungkin harus menonaktifkan login keamanan di akun Gmail Anda. Baca tentang cara melakukan ini untuk Gmail di sini.

Kesimpulan

Dalam pelajaran ini, kita melihat bagaimana kita dapat mengirim email menggunakan Python smtplib modul.

Ulasan Mouse Nirkabel Microsoft Sculpt Touch
Saya baru-baru ini membaca tentang Microsoft Sculpt Touch mouse nirkabel dan memutuskan untuk membelinya. Setelah menggunakannya untuk sementara waktu...
Trackpad dan Mouse Pointer di Layar AppyMouse untuk Tablet Windows
Pengguna tablet sering melewatkan penunjuk mouse, terutama ketika mereka terbiasa menggunakan laptop. Layar sentuh Smartphone dan tablet hadir dengan ...
Tombol tengah mouse tidak berfungsi di Windows 10
Itu tombol tengah mouse membantu Anda menelusuri halaman web dan layar yang panjang dengan banyak data. Jika itu berhenti, Anda akhirnya akan mengguna...