📚 Bu yazı bir serinin parçası — Python ile Ofis Otomasyonu
  1. Bölüm 1: Python ile Ofis Otomasyonu #1: Word Belgeleri Oluşturma
  2. Bölüm 2: Python ile Ofis Otomasyonu #2: PowerPoint Sunumları
  3. Bölüm 3: Python ile Ofis Otomasyonu #3: Kişiye Özel Toplu E-posta (bu yazı)

Serinin finalinde her şeyi birleştiriyoruz: bir Excel listesindeki herkese, kendi adıyla hitap eden ve kişiye özel eki olan e-postalar gönderelim. Buna mail merge denir.

Liste ve şablon

musteriler.xlsx dosyasında ad, e-posta ve tutar sütunları olsun. Her satır için kişiselleştirilmiş bir e-posta hazırlayacağız.

Kod

import smtplib, pandas as pd
from email.mime.text import MIMEText

gonderen = "senin@gmail.com"
sifre = "uygulama-sifresi"

liste = pd.read_excel("musteriler.xlsx")

with smtplib.SMTP_SSL("smtp.gmail.com", 465) as sunucu:
    sunucu.login(gonderen, sifre)

    for _, kisi in liste.iterrows():
        govde = "Sayin " + kisi["ad"] + ",\n\n"
        govde += "Bu ayki bakiyeniz: " + str(kisi["tutar"]) + " TL."

        mesaj = MIMEText(govde, "plain", "utf-8")
        mesaj["Subject"] = "Aylik Bilgilendirme"
        mesaj["From"] = gonderen
        mesaj["To"] = kisi["eposta"]

        sunucu.send_message(mesaj)
        print("Gonderildi:", kisi["eposta"])
💡

Tek bir oturum (login) açıp döngüde tüm mesajları göndermek, her seferinde yeniden bağlanmaktan çok daha hızlıdır.

Ek göndermek için önceki yazıda ürettiğimiz Word belgelerini MIMEMultipart ile ekleyebilirsiniz. Böylece 'herkese kendi teklifini gönder' otomasyonu tamamlanır. Seri bitti — artık uçtan uca bir ofis otomasyonu kurabilirsiniz.