Spaces:
Running
Running
File size: 1,743 Bytes
1fd4e9c |
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 logging
import os
from datetime import datetime
import requests
from dotenv import load_dotenv
from pytz import timezone
from mmaudio.utils.timezone import my_timezone
_source = 'USE YOURS'
_target = 'USE YOURS'
log = logging.getLogger()
_fmt = "%Y-%m-%d %H:%M:%S %Z%z"
class EmailSender:
def __init__(self, exp_id: str, enable: bool):
self.exp_id = exp_id
self.enable = enable
if enable:
load_dotenv()
self.MAILGUN_API_KEY = os.getenv('MAILGUN_API_KEY')
if self.MAILGUN_API_KEY is None:
log.warning('MAILGUN_API_KEY is not set')
self.enable = False
def send(self, subject, content):
if self.enable:
subject = str(subject)
content = str(content)
try:
return requests.post(f'https://api.mailgun.net/v3/{_source}/messages',
auth=('api', self.MAILGUN_API_KEY),
data={
'from':
f'<agent name>🤖 <mailgun@{_source}>',
'to': [f'{_target}'],
'subject':
f'[{self.exp_id}] {subject}',
'text':
('\n\n' + content + '\n\n<your sign off>\n' +
datetime.now(timezone(my_timezone)).strftime(_fmt)),
},
timeout=20)
except Exception as e:
log.error(f'Failed to send email: {e}')
|