Cara Mengirim Email dengan Python: Panduan Lengkap Gmail

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

  1. Aktifkan autentikasi dua faktor : Aktifkan Verifikasi 2 Langkah di pengaturan akun Gmail Anda. Ini akan memungkinkan pembuatan kata sandi aplikasi.
  2. 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.

  1. 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.
  1. 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.
  1. 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.
  1. 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.

侍エンジニア塾