Program Python : Mengirim email menggunakan Protokol SMTP

Hai Binerian, kali ini admin akan ngasih kamu tutorial yang menarik nih yaitu membuat program yang bisa berkirim email baik kepada satu email maupun ke banyak email sekaligus (broadcast). Tutorial kali ini menggunakan menggunakan protokol SMTP (Simple Mail Transfer Protocol) milik Google yang berfungsi untuk mengirimkan email dari akun google satu ke akun google lain. Sehingga, program ini hanya bisa digunakan menggunakan email google. Jika ingin menggunakan email yahoo dan email lainnya, silahkan gunakan SMPT yang sesuai.
Sebelum mencobakan tutorial ini, kamu harus mempersiapkan beberapa hal yaitu :
- Instalasi program python
- Email google yang aktif
- Akses internet
- Lalu yang paling penting menghidupkan fitur less secure app access di akun google-mu. Caranya buka pengaturan akun google -> buka tab security/keamanan -> pilih menu less secure app access -> klik turn on
Langsung saja kita ke kodingannya. Buka Python IDLE dan buatlah sebuah file baru, lalu salin kode berikut :
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email.mime.application import MIMEApplication
from email import encoders
import time
msg = MIMEMultipart()
sent=1
target=1
chooise=input("Would you like to send to multiple recipient? y/n: ")
if chooise=="y":
#username=input("you gmail username: ")
#password=input("you gmail password: ")
username = "emailkamu@gmail.com"
password = "passwordkamu"
print ("Connecting to server please wait...")
smtpserver=smtplib.SMTP("smtp.gmail.com",587)
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo
smtpserver.login(username,password)
print("Connection succesfull")
print('press enter to stop')
elist=[]
while True:
more_sent=int(input('how many emails to send: '))
subject=input('subject : ')
message=input('your message : ')
msg.attach(MIMEText(message,'plain'))
msg['Subject'] = subject
msg['From'] = username
while target <= more_sent:
targetxxx=input('Target email: ')
if len(targetxxx)==0:break
elist.append(targetxxx)
target+=1
while sent <= more_sent:
for targetxxx in elist:
smtpserver.sendmail(username,targetxxx,msg.as_string())
print ("Sending emails")
sent+=1
print ("succesfull send")
break
elif chooise=="n":
#username=input("your gmail username: ")
#password=input("your password: ")
username = "emailkamu@gmail.com"
password = "passwordkamu"
smtpserver=smtplib.SMTP("smtp.gmail.com",587)
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo
smtpserver.login(username,password)
print("Connect to server succesfull")
targetxxx=input("enter target E-mail: ")
subject=input('subject : ')
message=input('your message : ')
msg.attach(MIMEText(message,'plain'))
msg['Subject'] = subject
msg['From'] = username
smtpserver.sendmail(username,targetxxx,msg.as_string())
print ("Sent to %s ." % (targetxxx))
print ("was sent succesfull")
time.sleep(1)
else:
print ("Please choose y or n")
Ganti emailkamu@gmail.com serta passwordkamu dengan email yang kamu punya. Jika tidak ingin memasukkan email dan password-mu ke dalam program, gunakan kode yang telah admin tandai dengan pagar (#) dengan cara menghapus pagar (#) tersebut.
Lanjut ke tahap pengujian, jalankan program tersebut dengan menekan F5. Selanjutnya isikan email tujuan serta subjek dan isi email. Jika berhasil, maka akan muncul tampilan seperti berikut :

Lalu, silahkan cek email masuk di akun gmail tujuan