Menggunakan SMTP Server dan SMTPLib di Python
Ridwan Fajar 14 Februari 2017
Kadangkala ketika ingin membuat fitur kirim e-mail di dalam aplikasi yang kita kembangkan, kita harus memasang mailserver yang cukup menyita ukuran harddisk padahal hanya untuk kirim e-mail saja.
Python memiliki sebuah modul bernama SMTP Server yang dapat digunakan untuk menerima e-mail dari client dan menampilkan isinya ke stdout alias konsol. Untuk menjalankannya, kamu cukup mengeksekusi perintah berikut di konsol:
$ python -m smtpd -n -c DebuggingServer localhost:1025
Dimana 1025 adalah port untuk menerima e-mail yang datang. Bila kamu ingin menggunakan port 25 pastikan port tersebut tidak dipakai. Sekarang mari kita buat contoh client yang mengirim e-mail ke SMTP server ini:
import smtplib
sender = 'mikail@website.com'
recipient = ['sonanjaya@website.com']
message = """From: From Person <%s>
To: To Person <%s>
Subject: Testing SMTP E-Mail
Pesan ini dikirim melalui smtplib dan diterima oleh modul SMTP Server Python.
""" % (sender, recipient)
try:
smtpObj = smtplib.SMTP('localhost', 1025)
smtpObj.sendmail(sender, recipient, message)
print "Mengirim e-mail berhasil :D..."
except Exception, e:
print str(e)
print "Error: e-mail gagal terkirim :(..."
Pada kode diatas dengan menggunakan smtplib kamu cukup mengakses URL dan port yang dituju, lalu kirim e-mail dengan menggunakan method sendmail() dengan melewatkan pengirim, penerima, dan pesan.
Baca juga: Kumpulan Tutorial Belajar Bahasa Pemrograman Python
Bila kita eksekusi maka output pada SMTP Server akan tampak seperti berikut:
client:
$ python send_email.py
Mengirim e-mail berhasil :D...
server:
$ python -m smtpd -n -c DebuggingServer localhost:1025
---------- MESSAGE FOLLOWS ----------
From: From Person <mikail@website.com>
To: To Person <['sonanjaya@website.com']>
Subject: Testing SMTP E-Mail
X-Peer: 127.0.0.1
Pesan ini dikirim melalui smtplib dan diterima oleh modul SMTP Server Python.
------------ END MESSAGE ------------
(rfs/python)