mirror of
https://github.com/Wan-Video/Wan2.1.git
synced 2025-11-05 06:29:14 +00:00
51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
import logging
|
|
import os
|
|
from datetime import datetime
|
|
|
|
import requests
|
|
# from dotenv import load_dotenv
|
|
from pytz import timezone
|
|
|
|
from .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}')
|