Skrip Python yang dapat digunakan untuk mengotomatiskan pengiriman laporan email harian.
Skrip python ini menggunakan modul smtplib
untuk mengirim email dan email.mime
untuk membuat email dengan format yang sesuai. Juga akan dijelaskan cara menjadwalkan skrip ini agar berjalan secara otomatis setiap hari menggunakan cron job di Linux atau Task Scheduler di Windows.
Langkah 1: Instalasi Modul yang Dibutuhkan
Pastikan Anda memiliki modul yang diperlukan dengan menjalankan:
pip install smtplib
pip install email
Langkah 2: Skrip Python untuk Mengirim Email
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
import os
from datetime import datetime
def send_email(subject, body, to_emails, attachment_path=None):
# Konfigurasi email
smtp_server = ‘smtp.gmail.com’
smtp_port = 587
from_email = ‘your_email@gmail.com’
from_password = ‘your_password’
# Membuat objek email
msg = MIMEMultipart()
msg[‘From’] = from_email
msg[‘To’] = “, “.join(to_emails)
msg[‘Subject’] = subject
# Menambahkan teks ke email
msg.attach(MIMEText(body, ‘plain’))
# Menambahkan lampiran jika ada
if attachment_path:
attachment = open(attachment_path, ‘rb’)
part = MIMEBase(‘application’, ‘octet-stream’)
part.set_payload(attachment.read())
encoders.encode_base64(part)
part.add_header(‘Content-Disposition’, f’attachment; filename={os.path.basename(attachment_path)}’)
msg.attach(part)
attachment.close()
# Mengirim email
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(from_email, from_password)
server.sendmail(from_email, to_emails, msg.as_string())
server.quit()
print(f”Email berhasil dikirim ke {‘, ‘.join(to_emails)}”)
except Exception as e:
print(f”Gagal mengirim email: {str(e)}”)
if __name__ == “__main__”:
# Informasi email
subject = f”Laporan Harian – {datetime.now().strftime(‘%Y-%m-%d’)}”
body = “Berikut adalah laporan harian Anda.”
to_emails = [‘recipient1@example.com’, ‘recipient2@example.com’]
attachment_path = ‘/path/to/your/report.pdf’ # Ganti dengan path ke lampiran Anda jika ada
send_email(subject, body, to_emails, attachment_path)
Langkah 3: Menjadwalkan Skrip
Di Linux (Menggunakan Cron Job)
- Buka terminal dan jalankan:
crontab -e
2. Tambahkan baris berikut untuk menjalankan skrip setiap hari pada pukul 08:00
0 8 * * * /usr/bin/python3 /path/to/your_script.py
Ganti /path/to/your_script.py
dengan path lengkap ke skrip Python Anda.
Di Windows (Menggunakan Task Scheduler)
- Buka Task Scheduler.
- Klik “Create Basic Task”.
- Ikuti wizard untuk memberikan nama dan deskripsi untuk tugas.
- Pilih “Daily” untuk memulai tugas setiap hari.
- Tentukan waktu untuk menjalankan tugas setiap hari.
- Pilih “Start a Program” dan browse ke lokasi Python executable (
python.exe
). - Di kolom “Add arguments”, masukkan path ke skrip Anda, misalnya :
“C:\path\to\your_script.py”
8. Selesaikan wizard dan tugas akan dijalankan setiap hari pada waktu yang ditentukan.
Penjelasan Tambahan
- Keamanan: Jangan pernah menyimpan password secara plaintext dalam skrip. Pertimbangkan menggunakan variabel lingkungan atau sistem manajemen rahasia (secrets management).
- Log: Tambahkan logging untuk melacak jika ada kesalahan atau masalah saat pengiriman email.
- Attachment Handling: Pastikan path lampiran sudah benar dan file dapat diakses oleh skrip.
Dengan mengikuti langkah-langkah di atas, Anda akan memiliki sistem otomatis untuk mengirim email laporan harian menggunakan Python.