1. Pendahuluan
Mengirim email dengan Python adalah keterampilan yang sangat berguna baik untuk aplikasi pribadi maupun sistem bisnis. Misalnya, dapat digunakan untuk secara otomatis mengirim notifikasi kepada pengguna dari sebuah aplikasi atau mengirim log kesalahan sistem ke administrator secara real‑time. Selain itu, dengan mengirim email melalui kode alih‑alih secara manual, Anda dapat menangani pengiriman email secara efisien dan sangat menyederhanakan tugas sehari‑hari.
Python menyertakan smtplib dalam pustaka standar, memungkinkan pengiriman email dasar tanpa menambahkan modul eksternal. Pada artikel ini, kami menjelaskan penyiapan dasar dan langkah‑langkah mengirim email dengan Python serta memperkenalkan metode praktis menggunakan contoh kode nyata. Kami juga membahas topik lanjutan secara detail, seperti email berformat HTML, mengirim email dengan lampiran, pengaturan keamanan Gmail, mengirim email dalam bahasa Jepang, dan pengiriman massal ke banyak penerima.
Pada akhir panduan ini, Anda akan dapat mengirim email dengan Python secara mudah dan memiliki pengetahuan untuk menerapkannya dalam berbagai situasi.
2. Cara Mengirim Email dengan Python
Untuk mengirim email dengan Python, gunakan pustaka standar smtplib. Pustaka ini memungkinkan Anda mengirim email melalui server SMTP hanya dengan menulis kode. Di bawah ini kami menyajikan tinjauan lengkap modul smtplib dan langkah‑langkah dasar untuk mengirim email.
Pengenalan modul smtplib
Modul smtplib merupakan bagian dari pustaka standar Python dan mendukung protokol klien SMTP. Dengan modul ini, Anda dapat terhubung langsung ke server SMTP dari Python dan mengirim email.
Fitur utama smtplib
- Mudah berkomunikasi dengan server SMTP.
- Tidak memerlukan modul eksternal tambahan; sudah termasuk dalam Python, jadi tidak perlu pengaturan tambahan.
- Mendukung pengaturan keamanan dan penanganan error.
Langkah‑langkah dasar mengirim email
Sekarang kami akan memandu Anda melalui langkah‑langkah dasar mengirim email dengan Python. Dengan mengikuti langkah di bawah ini, Anda dapat mengirim email dengan mudah.
1. Cara terhubung ke server SMTP
Pertama, Anda harus terhubung ke server SMTP. Ini adalah titik awal untuk mengirim email. Umumnya, Anda akan sering menggunakan server SMTP yang disediakan oleh layanan seperti Gmail, Yahoo Mail, atau Outlook, namun Anda juga dapat menggunakan server SMTP khusus perusahaan.
import smtplib
# SMTP server settings
smtp_server = "smtp.example.com" # Example: For Gmail, use "smtp.gmail.com"
smtp_port = 587 # Common port number. For Gmail, use 587
2. Menyiapkan otentikasi login
Setelah koneksi ke server SMTP terbentuk, masuklah dengan alamat email pengirim dan kata sandi. Saat menggunakan layanan seperti Gmail, pengaturan keamanan tambahan mungkin diperlukan.
# Email account information
username = "your_email@example.com"
password = "your_password"
# Connect and log in to the SMTP server
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls() # Establish a secure connection
server.login(username, password)
3. Membuat dan mengirim email
Selanjutnya, buatlah konten email yang akan dikirim. Tentukan alamat penerima, subjek, dan isi pesan, lalu kirimkan melalui server SMTP.
# Email sending information
to_address = "recipient@example.com"
subject = "Test email"
body = "This email was sent from Python."
# Email format
message = f"Subject: {subject}
{body}"
# Send email
server.sendmail(username, to_address, message)
print("Email has been sent!")
4. Poin penting untuk penanganan error
Koneksi ke server SMTP dan pengiriman email dapat menghasilkan error yang tidak terduga. Karena itu, gunakan blok try‑except agar Anda dapat menangani error dengan tepat.
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(username, password)
server.sendmail(username, to_address, message)
print("The email was sent successfully!")
except Exception as e:
print("Email send error:", e)
finally:
server.quit() # Close the connection
Ringkasan
Ini mencakup prosedur dasar untuk mengirim email dengan Python. Setelah Anda mempelajari alur ini, Anda dapat mengotomatisasi email, mengirim beberapa pesan sekaligus, dan menerapkannya dalam berbagai cara. Pada bagian selanjutnya, kita akan membahas secara detail tentang mengirim email teks biasa, email HTML, dan email dengan lampiran menggunakan contoh kode aktual. 
3. Praktis: Contoh Kode Pengiriman Email di Python
Mulai dari sini, kita akan menyajikan contoh kode aktual untuk mengirim email menggunakan Python. Kita akan menjelaskan langkah demi langkah cara mengirim email teks biasa, email HTML, dan email dengan lampiran.
Mengirim Email Teks Biasa
Pertama, berikut cara mengirim bentuk paling dasar: email teks biasa. Kita akan menggunakan modul smtplib untuk mengirim pesan teks sederhana.
Contoh Kode
import smtplib
# Email account information
smtp_server = "smtp.example.com"
smtp_port = 587
username = "your_email@example.com"
password = "your_password"
# Recipient and contents
to_address = "recipient@example.com"
subject = "Plain text email test"
body = "This is a plain text email sent from Python."
# Email format
message = f"Subject: {subject}
{body}"
try:
# Connect to the server
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(username, password)
server.sendmail(username, to_address, message)
print("Plain text email sent!")
except Exception as e:
print("Email send error:", e)
finally:
server.quit()
Mengirim Email HTML
Selanjutnya, kita akan menjelaskan cara mengirim email yang diformat dengan HTML. Menggunakan email HTML memungkinkan Anda menata isi dan menyematkan tautan. Saat menyertakan kode HTML dalam isi email, gunakan modul email.mime untuk menangani HTML dengan benar.
Contoh Kode
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
# Email account information
smtp_server = "smtp.example.com"
smtp_port = 587
username = "your_email@example.com"
password = "your_password"
# Recipient and contents
to_address = "recipient@example.com"
subject = "HTML email test"
html_content = '''
<html>
<body>
<h1>Hello</h1>
<p>This is an HTML-formatted email sent from <strong>Python</strong>.</p>
<a href="https://example.com">Click here</a>
</body>
</html>
'''
# Create the email
message = MIMEMultipart()
message["From"] = username
message["To"] = to_address
message["Subject"] = subject
message.attach(MIMEText(html_content, "html"))
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(username, password)
server.sendmail(username, to_address, message.as_string())
print("HTML email sent!")
except Exception as e:
print("Email send error:", e)
finally:
server.quit()
Mengirim Email dengan Lampiran
Selanjutnya, kita akan menunjukkan cara mengirim email dengan file yang dilampirkan. Misalnya, Anda dapat melampirkan PDF atau gambar ke email Anda. Ini menggunakan kelas MIMEBase dari modul email.mime.
Contoh Kode
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
# Email account information
smtp_server = "smtp.example.com"
smtp_port = 587
username = "your_email@example.com"
password = "your_password"
# Recipient and contents
to_address = "recipient@example.com"
subject = "Test email with attachment"
body = "I have attached a file. Please check it."
# Create the email
message = MIMEMultipart()
message["From"] = username
message["To"] = to_address
message["Subject"] = subject
message.attach(MIMEText(body, "plain"))
# Attach file
filename = "example.pdf" # Name of the file to attach
with open(filename, "rb") as attachment:
part = MIMEBase("application", "octet-stream")
part.set_payload(attachment.read())
encoders.encode_base64(part)
part.add_header("Content-Disposition", f"attachment; filename={filename}")
message.attach(part)
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(username, password)
server.sendmail(username, to_address, message.as_string())
print("Email with attachment sent!")
except Exception as e:
print("Email send error:", e)
finally:
server.quit()
Ringkasan
Dengan menggunakan contoh kode di atas, Anda dapat mengirim berbagai jenis email dengan Python. Tergantung pada kebutuhan Anda, Anda dapat memilih antara teks biasa, HTML, atau email dengan lampiran. Pada bagian berikutnya, kami akan menggunakan Gmail sebagai contoh untuk menjelaskan pengaturan khusus dan tindakan pencegahan saat menggunakan server SMTP tertentu.
4. Mengirim email dengan Gmail
Bagian ini menjelaskan secara detail cara mengirim email dengan Gmail menggunakan Python. Gmail banyak digunakan dan menyediakan server SMTP yang dapat diakses dengan mudah oleh program Python. Namun, mengirim email melalui Gmail memerlukan beberapa pengaturan keamanan.
Pengaturan SMTP Gmail
Untuk mengirim email menggunakan Gmail, gunakan informasi server SMTP berikut:
- SMTP server :
smtp.gmail.com - Port : 587 (gunakan TLS) atau 465 (gunakan SSL)
- Autentikasi : Diperlukan
Contoh kode pengaturan dasar
import smtplib
from email.mime.text import MIMEText
# Gmail SMTP server settings
smtp_server = "smtp.gmail.com"
smtp_port = 587
username = "your_email@gmail.com"
password = "your_password"
# Recipient and content
to_address = "recipient@example.com"
subject = "Test email from Gmail"
body = "This email was sent through Gmail from Python."
# Create the email content
message = MIMEText(body)
message["From"] = username
message["To"] = to_address
message["Subject"] = subject
try:
# Connect to the server and send the email
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls() # Use TLS to enhance security
server.login(username, password)
server.sendmail(username, to_address, message.as_string())
print("The email was sent using Gmail!")
except Exception as e:
print("Email sending error:", e)
finally:
server.quit()
Pertimbangan keamanan
Saat menggunakan akun Gmail, Anda harus meninjau pengaturan keamanan Anda. Gmail biasanya memberlakukan pembatasan keamanan pada akses dari aplikasi pihak ketiga. Oleh karena itu, saat mengakses dari Python, langkah-langkah berikut diperlukan.
Mendapatkan kata sandi aplikasi
- Aktifkan autentikasi dua faktor : Aktifkan Verifikasi 2 Langkah di pengaturan akun Gmail Anda. Ini akan memungkinkan pembuatan kata sandi aplikasi.
- Buat kata sandi aplikasi : Dari Pengaturan Akun Gmail > Keamanan > Kata sandi aplikasi, buat kata sandi aplikasi khusus untuk program Python Anda. Kata sandi ini digunakan sebagai pengganti kata sandi masuk biasa Anda.
Catatan
- Mengelola kata sandi aplikasi : Jaga kata sandi aplikasi tetap rahasia dan aman.
- Keamanan akun : Menggunakan kata sandi aplikasi disarankan untuk membantu mencegah akses tidak sah ke akun Gmail Anda.
Contoh kode (menggunakan kata sandi aplikasi)
Saat menggunakan kata sandi aplikasi, kodenya terlihat seperti ini.
import smtplib
from email.mime.text import MIMEText
smtp_server = "smtp.gmail.com"
smtp_port = 587
username = "your_email@gmail.com"
app_password = "your_app_password" # Use an app password instead of your regular password
to_address = "recipient@example.com"
subject = "Test email from Gmail using an app password"
body = "This email was sent from Gmail using an app password."
message = MIMEText(body)
message["From"] = username
message["To"] = to_address
message["Subject"] = subject
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(username, app_password)
server.sendmail(username, to_address, message.as_string())
print("The email was sent using Gmail!")
except Exception as e:
print("Email sending error:", e)
finally:
server.quit()
Ringkasan
Saat mengirim email dari Python melalui Gmail, pengaturan keamanan akun Anda sangat penting. Menggunakan kata sandi aplikasi memungkinkan Anda mengirim email dengan lebih aman. Bagian berikutnya akan memperkenalkan teknik pengiriman email lanjutan dalam Python, termasuk mengirim ke banyak penerima, pengiriman terjadwal otomatis, dan cara mengirim email dalam bahasa Jepang. 
5. Aplikasi Lanjutan: Teknik Pengiriman Email
Mulai dari sini, kami akan membahas teknik pengiriman email lanjutan dalam Python. Bagian ini menjelaskan metode praktis seperti pengiriman massal ke banyak penerima, mengotomatisasi email terjadwal, dan mengirim email dalam bahasa Jepang.
Mengirim ke Banyak Penerima
Dengan Python, Anda dapat mengirim pesan ke banyak penerima sekaligus. Dengan mengatur bidang email “To”, “Cc”, dan “Bcc” secara tepat serta mengelola penerima sebagai daftar, pengiriman massal menjadi sederhana.
Contoh Kode
Berikut adalah contoh kode yang menentukan banyak penerima di bidang “To”.
import smtplib
from email.mime.text import MIMEText
# SMTP server info
smtp_server = "smtp.gmail.com"
smtp_port = 587
username = "your_email@gmail.com"
password = "your_app_password"
# Recipient list
to_addresses = ["recipient1@example.com", "recipient2@example.com"]
subject = "Test email to multiple recipients"
body = "This email was sent to multiple recipients at once."
# Create the email
message = MIMEText(body)
message["From"] = username
message["To"] = ", ".join(to_addresses) # Separate multiple recipients with commas
message["Subject"] = subject
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(username, password)
server.sendmail(username, to_addresses, message.as_string())
print("The email to multiple recipients has been sent!")
except Exception as e:
print("Email sending error:", e)
finally:
server.quit()
Mengotomatisasi Pengiriman Email Terjadwal
Untuk mengirim email secara berkala, mengatur jadwal sangat berguna. Python memiliki pustaka seperti “schedule” dan modul “time” untuk menjalankan tugas berulang berdasarkan interval waktu. Misalnya, Anda dapat menyusun skrip untuk secara otomatis mengirim email pada waktu tertentu.
Contoh Kode (Pengiriman terjadwal menggunakan schedule)
import smtplib
from email.mime.text import MIMEText
import schedule
import time
def send_email():
smtp_server = "smtp.gmail.com"
smtp_port = 587
username = "your_email@gmail.com"
password = "your_app_password"
to_address = "recipient@example.com"
subject = "Scheduled email"
body = "This is an email sent on a regular schedule."
message = MIMEText(body)
message["From"] = username
message["To"] = to_address
message["Subject"] = subject
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(username, password)
server.sendmail(username, to_address, message.as_string())
print("Email has been sent!")
except Exception as e:
print("Email sending error:", e)
finally:
server.quit()
# Send the email every day at 9:00 AM
schedule.every().day.at("09:00").do(send_email)
while True:
schedule.run_pending()
time.sleep(1)
Skrip ini akan secara otomatis mengirim email setiap hari pada waktu yang ditentukan (di sini, pukul 09:00).
Mengirim Email dalam Bahasa Jepang
Saat mengirim email dalam bahasa Jepang dengan Python, Anda perlu memperhatikan pengkodean. Khususnya untuk subjek dan isi yang mengandung bahasa Jepang, konfigurasikan pesan Anda untuk menggunakan pengkodean UTF-8 agar transmisi berjalan dengan benar.
Contoh kode (dukungan bahasa Jepang)
import smtplib
from email.mime.text import MIMEText
from email.header import Header
smtp_server = "smtp.gmail.com"
smtp_port = 587
username = "your_email@gmail.com"
password = "your_app_password"
to_address = "recipient@example.com"
# Japanese subject and body
subject = Header("Test email in Japanese", "utf-8")
body = "This is an email sent in Japanese from Python."
message = MIMEText(body, "plain", "utf-8")
message["From"] = username
message["To"] = to_address
message["Subject"] = subject
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(username, password)
server.sendmail(username, to_address, message.as_string())
print("The Japanese email has been sent!")
except Exception as e:
print("Email sending error:", e)
finally:
server.quit()
Ringkasan
Di bagian ini, kami telah membahas teknik pengiriman email lanjutan dengan Python. Menggunakan fitur seperti mengirim ke banyak penerima, mengotomatiskan email terjadwal, dan mendukung bahasa Jepang membuat pengiriman email Anda lebih praktis. Bagian berikutnya akan merangkum artikel dan meninjau poin-poin utama.
6. Ringkasan
Artikel ini menjelaskan cara mengirim email dengan Python, mulai dari dasar hingga teknik lanjutan. Dengan menggunakan pustaka standar Python “smtplib”, pengiriman email menjadi sederhana dan dapat diterapkan pada tugas serta aplikasi sehari-hari.
Berikut adalah rangkuman poin-poin penting yang dipelajari di setiap bagian.
- Langkah dasar untuk mengirim email
- Anda belajar cara menggunakan modul “smtplib” Python untuk mengirim email melalui server SMTP.
- Kami juga membahas alur kerja mulai dari menyusun hingga mengirim email serta pentingnya penanganan kesalahan.
- Contoh kode pengiriman email praktis
- Kami memperkenalkan cara mengirim email teks biasa, email HTML, dan email dengan lampiran, masing-masing dengan contoh kode.
- Hal ini memungkinkan Anda menyesuaikan kode dengan berbagai format email untuk memenuhi berbagai kebutuhan.
- Mengirim email dengan Gmail
- Kami menjelaskan pengaturan server SMTP Gmail dan langkah keamanan menggunakan kata sandi aplikasi.
- Kami menegaskan bahwa saat menggunakan akun Gmail, Anda harus mengaktifkan verifikasi dua langkah dan menyiapkan kata sandi aplikasi.
- Teknik pengiriman email lanjutan
- Kami membahas pengiriman ke banyak penerima, mengotomatiskan email terjadwal, dan teknik penanganan konten berbahasa Jepang.
- Khususnya, kami menekankan bahwa pengaturan pengkodean yang tepat penting saat mengirim email yang mencakup bahasa Jepang dalam subjek atau isi.
Cara menggunakan panduan ini
Dengan mengikuti panduan ini, Anda dapat membangun pengirim email otomatis, sistem notifikasi terjadwal, atau aplikasi notifikasi menggunakan Python. Sebagai keterampilan praktis, Anda dapat menerapkannya pada dukungan pelanggan, manajemen operasi, atau sebagai bagian dari layanan notifikasi.
Mengirim email dengan Python dapat diterapkan pada banyak tugas dan kasus penggunaan, dan kemudahan serta fleksibilitasnya dapat sangat menguntungkan dalam bisnis. Cobalah dan gabungkan ke dalam proyek Anda.




