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:

  1. 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.
  1. 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.
  1. 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 ;.
  1. Proses Pengiriman Email

Langkah utama pengiriman email:

  1. Membuat Koneksi ke Outlook
  2. outlook = win32com.client.Dispatch(“Outlook.Application”)

Library ini memungkinkan Python terhubung ke aplikasi Outlook di komputer kamu.

  1. Memilih Akun Email
  1. for account in outlook.Session.Accounts:
  2. if account.DisplayName == “meidhy@enterspasi.com“:
  3. Xdesired_account = account
  4. Membuat Email Baru
  1. mail = outlook.CreateItem(0)
  2. mail._oleobj_.Invoke(*(64209, 0, 8, 0, account))
  3. 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).
  1. Mengirim Email

20.mail.Send()

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

  1. Periksa Struktur File Excel: Pastikan semua kolom (seperti email_pemohon, email_atasan_pemohon, dll.) sudah benar.
  2. Gunakan Akun Email yang Aktif: Pastikan akun yang ditentukan (meidhy@enterspasi.com) tersedia di Outlook.
  3. Cek Path File: Path file Excel dan lampiran harus benar agar script berjalan dengan lancar.
  4. 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! 🚀

By Medhy

Leave a Reply