İşte adım adım bir Python betiği nasıl oluşturabileceğinize dair genel bir yol haritası:
Adım 1: Gerekli Kütüphaneleri Yükleme
Öncelikle, e-posta göndermek için smtplib ve e-posta içeriğini oluşturmak için email modüllerini kullanacağız. datetime modülü de tarih ve saat işlemleri için gereklidir.
Python:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from datetime import datetime
Adım 2: E-posta Ayarlarını Yapma
E-posta göndermek için SMTP sunucusu ayarlarını ve kimlik doğrulama bilgilerini belirtmeniz gerekecek. Örneğin, Gmail kullanıyorsanız:
Python:
smtp_server = 'smtp.gmail.com'
smtp_port = 587 # Gmail SMTP port TLS: 587 ile çalışmazsa SSL port : 465 deneyin
smtp_username = '[email protected]'
smtp_password = 'your_password'
Adım 3: E-posta İçeriğini Oluşturma
E-postanın konusunu, gövdesini ve alıcılarını belirleyin:
Python:
email_subject = 'Günlük Rapor - ' + datetime.today().strftime('%Y-%m-%d')
email_body = """
Merhaba,
İşte günlük raporunuz.
...rapor içeriği buraya gelecek...
İyi çalışmalar.
"""
recipients = ['[email protected]', '[email protected]']
Adım 4: E-posta Gönderme Fonksiyonunu Tanımlama
E-posta göndermek için bir fonksiyon oluşturun:
Python:
def send_email():
msg = MIMEMultipart()
msg['From'] = smtp_username
msg['To'] = ', '.join(recipients)
msg['Subject'] = email_subject
msg.attach(MIMEText(email_body, 'plain'))
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(smtp_username, smtp_password)
server.sendmail(smtp_username, recipients, msg.as_string())
server.quit()
print('E-posta başarıyla gönderildi!')
except Exception as e:
print('E-posta gönderilirken hata oluştu:', str(e))
Adım 5: Betiği Zamanlayıcıya Eklemek
Betiği günlük olarak çalıştırmak için işletim sistemine özgü bir zamanlama aracı kullanabilirsiniz:- Linux ve macOS için cron:
- Terminali açın ve crontab -e komutunu çalıştırın.
- Açılan düzenleyicide 0 8 * * * /usr/bin/python3 /path/to/your/script.py gibi bir satır ekleyin (bu örnekte betiğin her gün saat 8'de çalışacağını belirtiyoruz).
- Windows için Task Scheduler:
- Görev Zamanlayıcısı'nı açın.
- Sağ taraftaki "Görev Oluştur" seçeneğine tıklayın.
- Açılan pencerede genel ayarları ve çalıştırılacak programı (python.exe ile betiği) belirleyin.
Adım 6: Betiği Test Etme
Betiği test etmek için terminal veya komut istemcisinden çalıştırın ve çıktıyı kontrol edin
Python:
python your_script.py
Notlar:
- Güvenlik İpuçları: E-posta ve şifrenizi kod içinde doğrudan belirtmek yerine, ortam değişkenleri veya başka bir güvenli yöntem kullanarak bu bilgileri saklamayı düşünün.
- Hata Yönetimi: E-posta gönderimi sırasında oluşabilecek hataları yakalamak ve uygun şekilde işlemek önemlidir.
- E-posta İçeriği: Rapor içeriğini dinamik olarak oluşturmak için veritabanlarından veya dosyalardan veri çekmek gibi yöntemler kullanabilirsiniz.