Spaces:
Sleeping
Sleeping
Download src/utils/_email_client.py from sifars/proposal-generator: direct link, hf CLI and curl.
- Browser
- Download file 1.44 kB
-
https://huggingface.co/spaces/sifars/proposal-generator/resolve/main/src/utils/_email_client.py
- Command line
-
hf download hf://spaces/sifars/proposal-generator/src/utils/_email_client.py
-
curl -L -o _email_client.py https://huggingface.co/spaces/sifars/proposal-generator/resolve/main/src/utils/_email_client.py
1.44 kB
| 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, | |
| ) | |