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 @tool 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.")