Spaces:
Runtime error
Runtime error
| import smtplib | |
| from email.mime.text import MIMEText | |
| from email.mime.multipart import MIMEMultipart | |
| from smolagents import tool | |
| import os | |
| from tools.get_events import get_calendar_events # Takvim etkinliklerini almak için | |
| def send_calendar_via_email(to_email: str, date_str: str) -> str: | |
| """ | |
| Belirtilen e-posta adresine, belirtilen tarihteki takvim programını mail olarak gönderir. | |
| Args: | |
| to_email (str): Takvimin gönderileceği e-posta adresi. | |
| date_str (str): Takviminin alınacağı tarih (örn: "bugün", "yarın", "15-05-2025"). | |
| Returns: | |
| str: E-postanın gönderilme durumuna dair bir mesaj. BAŞARILI ifadesi içeriyorsa agent durdurulabilir. | |
| """ | |
| from_email = os.environ.get("MAIL_USERNAME") | |
| password = os.environ.get("MAIL_PASSWORD") | |
| if not from_email or not password: | |
| return "E-posta gönderme bilgileri (.env dosyasında MAIL_USERNAME ve MAIL_PASSWORD tanımlı olmalı) eksik." | |
| events = get_calendar_events(date_str=date_str) | |
| if isinstance(events, str): # Hata mesajı geldiyse | |
| return f"Takvim bilgileri alınamadı: {events}" | |
| if not events: | |
| body = f"{date_str} tarihinde herhangi bir etkinliğiniz bulunmamaktadır." | |
| else: | |
| body = f"{date_str} tarihli takviminiz aşağıdaki gibidir:\n\n" | |
| for event in events: | |
| body += f"- {event}\n" | |
| subject = f"{date_str} Takviminiz" | |
| msg = MIMEMultipart() | |
| msg["From"] = from_email | |
| msg["To"] = to_email | |
| msg["Subject"] = subject | |
| msg.attach(MIMEText(body, "plain")) | |
| try: | |
| server = smtplib.SMTP("smtp.gmail.com", 587) | |
| server.starttls() | |
| server.login(from_email, password) | |
| server.send_message(msg) | |
| server.quit() | |
| return f"✅ {to_email} adresine {date_str} takviminiz başarıyla gönderildi. BAŞARILI" | |
| except Exception as e: | |
| return f"❌ Mail gönderilemedi: {e}" | |
| if __name__ == '__main__': | |
| print("Bu dosya bir araç modülüdür ve doğrudan çalıştırılmamalıdır.") |