- Katılım
- 17 Ocak 2024
- Mesajlar
- 214.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:
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
- SMTP Sunucusuna Bağlanma: Gmail için smtp.gmail.com adresini ve 587 portunu kullanıyoruz.
- Güvenli Bağlantı (TLS): server.starttls() ile güvenli bir iletişim başlatılır.
- Doğrulama: server.login() ile gönderici e-posta hesabında oturum açılır. Gmail için "uygulama şifresi" gereklidir.
- 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.