Python ile Otomatik E-posta Gönderimi Nasıl Yapılır?

  • Konuyu Başlatan Konuyu Başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi

Admin

Yönetici
Site Sorumlusu
Katılım
17 Ocak 2024
Mesajlar
213.672
Çözümler
3
Tepkime puanı
1
Puan
38
Web sitesi
forumsitesi.com.tr
Python ile Otomatik E-posta Gönderimi

Python, otomatik e-posta gönderimi yapmak için kolayca kullanılabilir. Bunun için genellikle smtplib modülü kullanılır. E-posta oluştururken ise email kütüphanesi ile mesaj içeriği ve formatı ayarlanabilir. İşte temel bir rehber:

Gerekli Kütüphaneler​

  • smtplib: E-posta göndermek için SMTP (Simple Mail Transfer Protocol) sunucularıyla iletişim kurar.
  • email: E-posta başlıklarını (konu, alıcı, gönderen) ve içeriği yapılandırmak için kullanılır.

Örnek Uygulama: Basit Bir E-posta Gönderimi​

Aşağıdaki örnek Gmail SMTP sunucusunu kullanarak bir e-posta göndermeyi göstermektedir:

Kod:
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

# Gönderen ve alıcı bilgileri
gonderen_email = "gonderen@gmail.com"
gonderen_sifre = "uygulama_sifresi"  # Gmail uygulama şifresi kullanılmalı
alicilar = ["alici1@gmail.com", "alici2@gmail.com"]

# E-posta başlıkları
mesaj = MIMEMultipart()
mesaj["From"] = gonderen_email
mesaj["To"] = ", ".join(alicilar)
mesaj["Subject"] = "Python ile Otomatik E-posta"

# E-posta içeriği
icerik = "Merhaba,\n\nBu e-posta Python ile otomatik olarak gönderildi.\n\nİyi çalışmalar!"
mesaj.attach(MIMEText(icerik, "plain"))

# SMTP sunucusuna bağlanma ve e-posta gönderimi
try:
    with smtplib.SMTP("smtp.gmail.com", 587) as server:
        server.starttls()  # Güvenli bağlantı başlatılır
        server.login(gonderen_email, gonderen_sifre)  # Gönderen e-posta giriş yapar
        server.sendmail(gonderen_email, alicilar, mesaj.as_string())  # E-posta gönderilir
        print("E-posta başarıyla gönderildi!")
except Exception as e:
    print(f"E-posta gönderimi sırasında bir hata oluştu: {e}")

Adım Adım Açıklama​

  1. SMTP Sunucusuna Bağlanma: Gmail için smtp.gmail.com adresini ve 587 portunu kullanıyoruz.
  2. Güvenli Bağlantı (TLS): server.starttls() ile güvenli bir iletişim başlatılır.
  3. Doğrulama: server.login() ile gönderici e-posta hesabında oturum açılır. Gmail için "uygulama şifresi" gereklidir.
  4. E-posta Gönderimi: server.sendmail() fonksiyonu ile e-posta alıcılara gönderilir.

HTML Formatında E-posta Gönderimi​

E-posta içeriğini zenginleştirmek için HTML formatı kullanabilirsiniz:
Kod:
html_icerik = """
<html>
  <body>
    <h1 style="color:blue;">Merhaba!</h1>
    <p>Bu, <b>Python</b> ile gönderilen HTML formatında bir e-posta.</p>
  </body>
</html>
"""
mesaj.attach(MIMEText(html_icerik, "html"))

Ek Dosya Gönderimi​

E-posta ile bir dosya göndermek için MIMEBase kullanabilirsiniz:

Kod:
from email.mime.base import MIMEBase
from email import encoders

# Ek dosya
dosya_yolu = "rapor.pdf"
with open(dosya_yolu, "rb") as dosya:
    ek = MIMEBase("application", "octet-stream")
    ek.set_payload(dosya.read())
    encoders.encode_base64(ek)  # Dosya base64 ile şifrelenir
    ek.add_header("Content-Disposition", f"attachment; filename={dosya_yolu}")
    mesaj.attach(ek)

Gmail Ayarları​

Gmail, harici uygulamaların doğrudan giriş yapmasını kısıtladığı için:

  • Google hesabınızda "Daha Az Güvenli Uygulamalara İzin Ver" özelliği açılmalıdır.
  • Daha güvenli bir yöntem olarak uygulama şifresi oluşturabilirsiniz.

Özet​

Python ile otomatik e-posta gönderimi, özellikle rapor paylaşımı, bildirimler veya hatırlatmalar için oldukça kullanışlıdır. smtplib ve email kütüphaneleri sayesinde metin tabanlı, HTML formatlı veya ek dosyalı e-postalar göndermek oldukça kolaydır.
 
Geri
Üst