Spaces:
Sleeping
Sleeping
File size: 1,443 Bytes
3345ea7 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
import os
from email.message import EmailMessage
import aiosmtplib
class EmailClient:
def __init__(self):
self.smtp_server = os.getenv("SMTP_SERVER")
self.smtp_port = int(os.getenv("SMTP_PORT"))
self.username = os.getenv("SMTP_USERNAME")
self.password = os.getenv("SMTP_PASSWORD")
async def __aenter__(self):
return self
async def __aexit__(self, exc_type, exc, tb):
pass
async def send_email(
self,
subject: str,
body: str,
to_emails: list,
attachments: list = None,
):
message = EmailMessage()
message["From"] = os.getenv("SENDER_EMAIL")
message["To"] = ", ".join(to_emails)
message["Subject"] = subject
message.set_content(body)
if attachments:
for attachment in attachments:
with open(attachment, "rb") as file:
file_data = file.read()
file_name = file.name
message.add_attachment(
file_data,
maintype="application",
subtype="octet-stream",
filename=file_name,
)
await aiosmtplib.send(
message,
hostname=self.smtp_server,
port=self.smtp_port,
username=self.username,
password=self.password,
start_tls=True,
)
|