236 lines
5.9 KiB
Python
236 lines
5.9 KiB
Python
from email.message import EmailMessage
|
||
|
||
from pydantic import EmailStr
|
||
|
||
from app.config import settings
|
||
|
||
|
||
def create_registration_confirmation_template(
|
||
username: str, email_to: EmailStr, confirmation_link: str, confirmation_code: str
|
||
):
|
||
email = EmailMessage()
|
||
|
||
email["Subject"] = "Подтверждение регистрации"
|
||
email["From"] = settings.SMTP_USER
|
||
email["To"] = email_to
|
||
|
||
email.set_content(
|
||
f"""
|
||
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||
<link href="https://fonts.googleapis.com/css2?family=Comfortaa:wght@200&display=swap" rel="stylesheet">
|
||
<title>Submiting</title>
|
||
</head>
|
||
<body>
|
||
<body style="
|
||
width:99%;
|
||
height:99%;
|
||
|
||
display: flex;
|
||
flex-direction:column;
|
||
align-items: center;
|
||
|
||
background-color:#101010;
|
||
|
||
font-family: 'Comfortaa';
|
||
font-weight: 200;
|
||
font-style: normal;
|
||
font-stretch: normal;
|
||
font-optical-sizing: auto;
|
||
">
|
||
|
||
<div style="
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content:space-around;
|
||
align-items: center;
|
||
text-align:center;
|
||
|
||
height:500px;
|
||
aspect-ratio: 1 / 1.44;
|
||
|
||
border: 1px solid transparent;
|
||
background:
|
||
linear-gradient(#101010, #101010) padding-box,
|
||
linear-gradient(to bottom, #3C53FF, #7734AA) border-box;
|
||
border-radius: 15px;
|
||
">
|
||
|
||
<h1 style="color:white;">Код подтверждения, {username}</h1>
|
||
<div style="
|
||
border: 1px solid transparent;
|
||
background:
|
||
linear-gradient(#101010, #101010) padding-box,
|
||
linear-gradient(to bottom, #3C53FF, #7734AA) border-box;
|
||
border-radius: 15px;
|
||
">
|
||
|
||
<h2 style="color:white; padding:0 5px 0 5px;">{confirmation_code}</h2>
|
||
</div>
|
||
|
||
<h1 style="color:white;">или</h1>
|
||
|
||
<a href="{confirmation_link}" style="
|
||
border: 1px solid transparent;
|
||
background:
|
||
linear-gradient(#101010, #101010) padding-box,
|
||
linear-gradient(to bottom, #3C53FF, #7734AA) border-box;
|
||
border-radius: 15px;
|
||
text-decoration: none;
|
||
">
|
||
|
||
<h2 style="color: white; padding:0 5px 0 5px;">перейдите по ссылке</h2>
|
||
</a>
|
||
</div>
|
||
</body>
|
||
</body>
|
||
</html>
|
||
""",
|
||
subtype="html",
|
||
)
|
||
return email
|
||
|
||
|
||
def create_data_change_confirmation_email(username: str, email_to: EmailStr, _: str, confirmation_code: str):
|
||
email = EmailMessage()
|
||
|
||
email["Subject"] = "Подтверждение изменения данных"
|
||
email["From"] = settings.SMTP_USER
|
||
email["To"] = email_to
|
||
|
||
email.set_content(
|
||
f"""
|
||
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||
<link href="https://fonts.googleapis.com/css2?family=Comfortaa:wght@200&display=swap" rel="stylesheet">
|
||
<title>Submiting</title>
|
||
</head>
|
||
<body>
|
||
<body style="
|
||
width:99%;
|
||
height:99%;
|
||
|
||
display: flex;
|
||
flex-direction:column;
|
||
align-items: center;
|
||
|
||
background-color:#101010;
|
||
|
||
font-family: 'Comfortaa';
|
||
font-weight: 200;
|
||
font-style: normal;
|
||
font-stretch: normal;
|
||
font-optical-sizing: auto;
|
||
">
|
||
|
||
<div style="
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content:space-around;
|
||
align-items: center;
|
||
text-align:center;
|
||
|
||
height:500px;
|
||
aspect-ratio: 1 / 1.44;
|
||
|
||
border: 1px solid transparent;
|
||
background:
|
||
linear-gradient(#101010, #101010) padding-box,
|
||
linear-gradient(to bottom, #3C53FF, #7734AA) border-box;
|
||
border-radius: 15px;
|
||
">
|
||
|
||
<h1 style="color:white;">Код подтверждения, {username}</h1>
|
||
<div style="
|
||
border: 1px solid transparent;
|
||
background:
|
||
linear-gradient(#101010, #101010) padding-box,
|
||
linear-gradient(to bottom, #3C53FF, #7734AA) border-box;
|
||
border-radius: 15px;
|
||
">
|
||
|
||
<h2 style="color:white; padding:0 5px 0 5px;">{confirmation_code}</h2>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</body>
|
||
</html>
|
||
""",
|
||
subtype="html",
|
||
)
|
||
return email
|
||
|
||
|
||
def create_data_change_email(username: str, email_to: EmailStr):
|
||
email = EmailMessage()
|
||
|
||
email["Subject"] = "Изменение данных"
|
||
email["From"] = settings.SMTP_USER
|
||
email["To"] = email_to
|
||
|
||
email.set_content(
|
||
f"""
|
||
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||
<link href="https://fonts.googleapis.com/css2?family=Comfortaa:wght@200&display=swap" rel="stylesheet">
|
||
<title>Submiting</title>
|
||
</head>
|
||
<body>
|
||
<body style="
|
||
width:99%;
|
||
height:99%;
|
||
|
||
display: flex;
|
||
flex-direction:column;
|
||
align-items: center;
|
||
|
||
background-color:#101010;
|
||
|
||
font-family: 'Comfortaa';
|
||
font-weight: 200;
|
||
font-style: normal;
|
||
font-stretch: normal;
|
||
font-optical-sizing: auto;
|
||
">
|
||
|
||
<div style="
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content:space-around;
|
||
align-items: center;
|
||
text-align:center;
|
||
|
||
height:500px;
|
||
aspect-ratio: 1 / 1.44;
|
||
|
||
border: 1px solid transparent;
|
||
background:
|
||
linear-gradient(#101010, #101010) padding-box,
|
||
linear-gradient(to bottom, #3C53FF, #7734AA) border-box;
|
||
border-radius: 15px;
|
||
">
|
||
|
||
<h1 style=" color:white;">{username} успешно поменял данные. УРА! УРА! УРА!!!</h1>
|
||
</div>
|
||
</body>
|
||
</body>
|
||
</html>
|
||
""",
|
||
subtype="html",
|
||
)
|
||
return email
|