Setelah sebelumnya kita membahas tentang cara grab email menggunakan Python, kali ini kita akan membahas bagaimana cara melakukan blast email secara otomatis. Dengan Python, pengiriman email massal tidak hanya menjadi efisien tetapi juga fleksibel untuk disesuaikan dengan kebutuhan. Artikel ini akan memandu kamu memahami script Python berikut, yang digunakan untuk mengirim undangan acara dengan informasi personalisasi langsung dari file Excel.
Penjelasan Script Blast Email dengan Python
Berikut adalah langkah-langkah utama dari script ini:
- Impor Library yang Dibutuhkan
import win32com.client
import pandas as pd
- win32com.client: Library ini digunakan untuk mengakses aplikasi Microsoft Outlook, memungkinkan kita membuat, membaca, atau mengirim email.
- pandas: Library untuk membaca dan memanipulasi data dalam file Excel.
- Membaca Data dari File Excel
excel_path = r"D:\DATABASE EMAIL\DB_SEND_MAIL.xlsx"
log_datsen = pd.read_excel(excel_path, sheet_name="DB_SEND_MAIL")
- File Excel (DB_SEND_MAIL.xlsx) berisi daftar email penerima, nama, serta informasi lainnya seperti CC (email atasan/puk).
- Pastikan struktur file Excel sudah sesuai, misalnya memiliki kolom seperti:
- email_pemohon (email penerima),
- email_atasan_pemohon, dan
- email_puk_pemohon.
- Menambahkan Kolom CC
log_datsen['cc'] = log_datsen['email_atasan_pemohon'] + ";" + log_datsen['email_puk_pemohon']
- Kolom baru cc dibuat dengan menggabungkan dua email (email atasan dan email puk) menggunakan pemisah ;.
- Proses Pengiriman Email
Langkah utama pengiriman email:
- Membuat Koneksi ke Outlook
- outlook = win32com.client.Dispatch(“Outlook.Application”)
Library ini memungkinkan Python terhubung ke aplikasi Outlook di komputer kamu.
- Memilih Akun Email
- for account in outlook.Session.Accounts:
- if account.DisplayName == “meidhy@enterspasi.com“:
- Xdesired_account = account
- Membuat Email Baru
- mail = outlook.CreateItem(0)
- mail._oleobj_.Invoke(*(64209, 0, 8, 0, account))
- Menyusun Konten Email
11.mail.Subject = ‘Invitation – Year-end event (Trial)’
12.mail.To = row[’email_pemohon’]
13.mail.CC = row[‘cc’]
14.mail.Attachments.Add(r”D:/DATABASE EMAIL/Invitation Card.png”)
15.mail.HTMLBody = r”””
16.<b> Hi {}, </b>
17….
18.”””.format(row[‘nm_pemohon’], row[‘nm_pemohon’])
- mail.Subject: Judul email.
- mail.To: Email penerima utama.
- mail.CC: Email tambahan untuk CC.
- mail.Attachments.Add: Menambahkan lampiran file (misalnya kartu undangan dalam format gambar atau PDF).
- mail.HTMLBody: Isi email dalam format HTML dengan elemen seperti <b> (teks tebal) dan <blockquote> (blok kutipan).
- Mengirim Email
20.mail.Send()
- Struktur Pesan Email
Isi email dibuat menggunakan format HTML untuk tampilan yang menarik. Contoh isi email:
<b> Hi {Nama Pemohon}, </b>
<hr>
<blockquote>
You are invited to the 2024 year-end event...
</blockquote>
<blockquote>
<p>
Nama Peserta: <b>{Nama Pemohon}</b> <br>
Konfirmasi Kehadiran: <b>Yes</b> or <b>No</b> <br>
...
</p>
</blockquote>
<hr>
Your confirmation email will be recorded automatically...
- Menyisipkan Lampiran
mail.Attachments.Add(r”D:/DATABASE EMAIL/Invitation Card.png”)
- File lampiran disisipkan dari direktori lokal. Pastikan file yang akan dilampirkan ada di path yang benar.
Tips untuk Menyesuaikan Script
- Periksa Struktur File Excel: Pastikan semua kolom (seperti email_pemohon, email_atasan_pemohon, dll.) sudah benar.
- Gunakan Akun Email yang Aktif: Pastikan akun yang ditentukan (meidhy@enterspasi.com) tersedia di Outlook.
- Cek Path File: Path file Excel dan lampiran harus benar agar script berjalan dengan lancar.
- Uji Coba Sebelum Produksi: Lakukan pengujian pengiriman email ke beberapa penerima sebelum mengirim blast email ke banyak orang.
Kesimpulan
Dengan script ini, kamu dapat mengirim email massal menggunakan Python secara otomatis dan efisien. Kombinasi antara Python, Outlook, dan Excel memberikan fleksibilitas tinggi untuk personalisasi pesan serta distribusi massal tanpa perlu mengulangi langkah manual.
Selamat mencoba, dan semoga sukses dengan event kamu! 🚀