Last Updated on July 2, 2022 by
Bagaimana cara mengirim email otomatis dengan Python? Yuk simak rincian kode Python mengirim email selengkapnya di sini!
Cara agar Python mengirim email otomatis adalah dengan mengaktifkan protol SMTP (Simple Mail Transfer Protocol). Protokol ini berfungsi mulai dari mengirim, mengatur pesan, hingga membentuk rute email di antara server-server pesan elektronik.
Python sendiri memiliki modul smtplib yang mendefinisikan sesi klien pada objek SMTP yang juga berperan untuk mengirim email ke sistem internet mana saja, plus dengan daemon pendengar SMTP atau ESMTP.
Berikut adalah contoh sintaksis sederhana untuk membuat objek SMTP, yang sekaligus mengaktivasi sistem Python mengirim email otomatis:
import smtplib
smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )
Keterangan:
- Host: Ini adalah host yang menjalankan server SMTP Anda. Anda dapat menentukan alamat IP host atau nama domain sendiri, contohnya seperti codekey.id. Poin ini bersifat opsional.
- Port: jika Anda mencantumkan nama host, maka Anda wajib menentukan port sebagai wadah bagi server SMTP untuk mendengarkan perintah. Jenis port yang biasa dipakai adalah port 25.
- Local_hostname: jika SMTP server Anda bekerja pada perangkat lokal, maka Anda bisa memilih opsi localhost pada fitur ini.
Objek SMTP memiliki metode instan yang disebut sendmail untuk mengirim pesan email otomatis. Lebih lanjut, metode ini tersusun atas tiga parameter penting:
- Sender: string berisi alamat pengirim email.
- Receivers: kumpulan string, yang mana masing-masing memuat alamat tujuan (penerima pesan).
- Message: pesan (isi email) dalam format string yang ditentukan dalam berbagai RFC.
Table of Contents
Contoh Skrip Kode Python Mengirim Email
Berikut adalah contoh skrip kode Python sederhana untuk mengirim email otomatis:
#!/usr/bin/python import smtplib sender = 'andi@gmail.com' receivers = ['budi@gmail.com'] message = """From: From andi <andi@gmail.com> To: To budi <budi@gmail.com> Subject: test SMTP e-mail python Ini contoh email. """ try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender, receivers, message) print "Email berhasil terkirim" except SMTPException: print "Error: gagal untuk mengirim email"
Kode di atas sudah memuat komponen dasar email dalam urutan yang benar. Agar dapat terkirim, maka email Anda membutuhkan header From, To, dan Subject yang dipisahkan dari isi pesan memakai satu baris kosong.
Kemudian kirimkan email memakai smtpObj agar Anda terhubung ke server SMTP di komputer local, lalu pakai metode sendmail bersama-sama dengan 3 komponen parameter yang telah dijelaskan tadi: sender, receiver, messages (catatan: From dan To biasanya sudah termasuk dalam e-mail itu sendiri, meski begitu, elemen tersebut tidak selalu dipakai untuk merutekan email).
Jika Anda tidak menjalankan server SMTP pada komputer lokal, sebagai gantinya gunakanlah klien smtplib untuk berkomunikasi dengan server SMTP jarak jauh. Kecuali Anda menggunakan layanan webmail (seperti Hotmail atau Yahoo! Mail), maka pihak penyedia pasti sudah memberikan informasi rincian server email, contohnya seperti berikut
smtplib.SMTP(‘andi.gmail.com’, 45)
Kode Python Mengirim Email dengan HTML
Ketika kita menjalankan kode Python mengirim email, maka semua isi konten di dalamnya akan diolah sebagai teks sederhana. Bahkan meskipun Anda memasukkan tags HTML, kode-kode tersebut akan tetap ditampilkan dalam bentuk teks biasa – bukan dalam format sintaksis HTML.
Akan tetapi Python menyediakan opsi sendiri untuk mengirimkan kode HTML sebagaimana aslinya (tanpa mengubah format). Cara tersebut adalah dengan menentukan versi Mime, tipe konten, beserta pengaturan karakter sebelum mengirim email.
Contoh Kode Python Mengirim Email HTML
Berikut adalah contoh koding email berisi tag HTML di Python:
#!/usr/bin/python import smtplib message = """From: From andi <andi@gmail.com> To: To budi <budi@gmail.com> MIME-Version: 1.0 Content-type: text/html Subject: test SMTP e-mail python format HTML Ini contoh email dengan format HTML <h1>Ini adalah berita utama.</h1> """ try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender, receivers, message) print "Email berhasil terkirim " except SMTPException: print "Error: gagal untuk mengirim email "
Kode Python Mengirim Email dengan Lampiran
Terakhir ada rincian koding Python untuk mengirimkan email dengan lampiran. Di sini Anda perlu mengubah header Content-type menjadi multipart/mixed. Selanjutnya, tentukan masing-masing bagian teks dan lampiran email dengan boundaries.
Boundary diawali dengan dua tanda hubung ( – ) diikuti dengan serial angka unik yang tidak dapat muncul di bagian pesan email. Bagian akhir boundary juga ditandai dengan simbol yang sama untuk memperjelas bagian akhir dari pesan email Anda.
Lalu, file yang terlampir harus dikodekan dengan fungsi pack(“m”) agar mempunyai pengkodean base64 sebelum masuk ke proses transmisi.
Contoh Kode Python Mengirim Email dengan Lampiran
Berikut adalah contoh mengirim lampiran bernama /tmp/test.txt lewat email di Python:
#!/usr/bin/python import smtplib import base64 filename = "/tmp/document.txt" fo = open(filename, "rb") filecontent = fo.read() encodedcontent = base64.b64encode(filecontent) sender = 'andi@gmail.com' reciever = 'budi@gmail.com' marker = "AUNIQUEMARKER" body =""" Ini contoh email dengan berkas. """ part1 = """From: From andi <andi@gmail.com> To: To budi <budi@gmail.com> Subject: test SMTP e-mail python dengan berkas MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=%s --%s """ % (marker, marker) part2 = """Content-Type: text/plain Content-Transfer-Encoding:8bit %s --%s """ % (body,marker) part3 = """Content-Type: multipart/mixed; name=\"%s\" Content-Transfer-Encoding:base64 Content-Disposition: attachment; filename=%s %s --%s-- """ %(filename, filename, encodedcontent, marker) message = part1 + part2 + part3 try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender, reciever, message) print "Email berhasil terkirim" except Exception: print "Error: gagal untuk mengirim email"
Demikianlah panduan kode-kode Python untuk mengirim email secara otomatis. Semoga ulasan di atas dapat menambah wawasan Anda, ya.
Yuk temukan lebih banyak tutorial coding gratis hanya dari CODEKEY. Baca kumpulan artikelnya setiap hari di https://codekey.id/. Sampai bertemu lagi!
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.