Files
core/auth/email.py

28 lines
1.1 KiB
Python
Raw Normal View History

2023-10-06 00:17:24 +03:00
import httpx
2022-10-05 18:54:29 +03:00
from settings import MAILGUN_API_KEY, MAILGUN_DOMAIN
2023-10-06 00:17:24 +03:00
api_url = f"https://api.mailgun.net/v3/{MAILGUN_DOMAIN or 'discours.io'}/messages"
noreply = f"discours.io <noreply@{MAILGUN_DOMAIN or 'discours.io'}>"
lang_subject = {"ru": "Подтверждение почты", "en": "Confirm email"}
2022-10-21 08:47:58 +03:00
2022-12-01 20:26:53 +01:00
async def send_auth_email(user, token, lang="ru", template="email_confirmation"):
2022-10-05 18:54:29 +03:00
try:
2023-10-06 00:17:24 +03:00
to = f"{user.name} <{user.email}>"
if lang not in ["ru", "en"]:
lang = "ru"
2022-10-22 15:02:15 +03:00
subject = lang_subject.get(lang, lang_subject["en"])
2022-11-27 16:14:17 +03:00
template = template + "_" + lang
2022-10-22 15:02:15 +03:00
payload = {
"from": noreply,
"to": to,
"subject": subject,
"template": template,
2023-10-06 00:17:24 +03:00
"h:X-Mailgun-Variables": f'{{ "token": "{token}" }}',
2022-10-22 15:02:15 +03:00
}
2023-10-06 00:17:24 +03:00
print(f"[auth.email] payload: {payload}")
async with httpx.AsyncClient() as client:
response = await client.post(api_url, auth=("api", MAILGUN_API_KEY), data=payload)
response.raise_for_status()
2022-10-05 18:54:29 +03:00
except Exception as e:
print(e)