DesertWolf's picture
Upload folder using huggingface_hub
447ebeb verified
"""
This is the litellm x resend email integration
https://resend.com/docs/api-reference/emails/send-email
"""
import os
from typing import List
from litellm._logging import verbose_logger
from litellm.llms.custom_httpx.http_handler import (
get_async_httpx_client,
httpxSpecialProvider,
)
from .base_email import BaseEmailLogger
RESEND_API_ENDPOINT = "https://api.resend.com/emails"
class ResendEmailLogger(BaseEmailLogger):
def __init__(self):
self.async_httpx_client = get_async_httpx_client(
llm_provider=httpxSpecialProvider.LoggingCallback
)
self.resend_api_key = os.getenv("RESEND_API_KEY")
async def send_email(
self,
from_email: str,
to_email: List[str],
subject: str,
html_body: str,
):
verbose_logger.debug(
f"Sending email from {from_email} to {to_email} with subject {subject}"
)
response = await self.async_httpx_client.post(
url=RESEND_API_ENDPOINT,
json={
"from": from_email,
"to": to_email,
"subject": subject,
"html": html_body,
},
headers={"Authorization": f"Bearer {self.resend_api_key}"},
)
verbose_logger.debug(
f"Email sent with status code {response.status_code}. Got response: {response.json()}"
)
return