Pada artikel kali ini. Saya akan membahas bagaimana cara mengirim email melalui python. Kenapa menggunakan python? python merupakan powerfull language yang tidak memerlukan library external untuk mengirim email.
Disini, library yang akan kita gunakan adalah "smtplib". Library ini akan membuat Simple Mail Transfer Protocol (SMTP) yang mana bisa di gunakan untuk mengirim email kepada suluruh email yang valid yang ada di internet.
Pada artikel kali ini, saya akan menggunakan gmail account. Port number yang di gunakan adalah "587". Untuk mail service lainnya menggunakan port number yang berbeda.
Prerequisite
- Basic understanding of python
- python3
- Library (smtplib, MIME, email)
- Email account
By default, library smtplib, MIME, dan email sudah terinstall pada python2, tetapi tidak untuk python3. Kali ini kita akan menggunakan python3. Dengan kata lain, kita harus install library tersebut pada python3.
sudo pip3 install MIMESetelah terinstall. buat script seperti berikut.
sudo pip3 install email
Isi instance yang wajib di isi, seperti email sender & receiver, password, subject, dan content dari email.
Untuk alasan security, kita memasukkan SMTP connection kedalam TLS mode. TLS (Transport Layer Security) berfungsi untuk encrypt SMTP command. Seperti user, password, content, dan payload (data).
Untuk mecoba script ini, bisa di running melalui terminal pada masing-masing OS.
┌─[✗]─[cryptarch443@cryptarch443-X453SA]─[~/My Learning]Mungkin beberapa dari kalian akan ada yang mengalami error seperti ini.
└──╼ $python3 send_email.py
┌─[cryptarch443@cryptarch443-X453SA]─[~/My Learning]Jika di lihat dari link yang di sediakan dari notice error di atas. Gmail seperti memiliki kebijakan mengenai IMAP dan SMTP yang bisa kalian baca.
└──╼ $python3 send_email.py
Traceback (most recent call last):
File "send_email.py", line 22, in <module>
server.login(from_address, "********")
File "/usr/lib/python3.6/smtplib.py", line 730, in login
raise last_exception
File "/usr/lib/python3.6/smtplib.py", line 721, in login
initial_response_ok=initial_response_ok)
File "/usr/lib/python3.6/smtplib.py", line 642, in auth
raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted. Learn more at\n5.7.8 https://support.google.com/mail/?p=BadCredentials c69sm13109026pje.6 - gsmtp')
Untuk solusi nya, kalian bisa klik link berikut. Dan enable "less secure apps".
Setelah di enable, bisa di coba lagi. Lalu check email sender & receiver. Apakah email sudah terkirim atau belum. Terkadang email yang di terima masuk kedalam email spam. Tetapi trouble seperti itu bisa diatasi dari email masing-masing.
Script di atas hanya bisa untuk mengirim massage saja, tanpa attachment seperti image, video, audio, dan file. Lalu bagaimana jika kita ingin mengirim email dengan attachment? . Cukup tambahkan beberapa line script seperti berikut.
Setelah di tambahkan, jangan lupa untuk memilih file apa yang akan kita attach pada script. Isi nama file bersertakan extension dan path directory pada script tersebut. Setelah itu, coba running kembali script tersebut dan check email sender & receiver.

0 comments:
Posting Komentar