| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import smtplib
- from email.mime.text import MIMEText
- from email.mime.multipart import MIMEMultipart
- import config
- def send_email(to_email: str, subject: str, body_html: str):
- try:
- msg = MIMEMultipart("alternative")
- msg["Subject"] = subject
- msg["From"] = config.SMTP_FROM
- msg["To"] = to_email
- html_part = MIMEText(body_html, "html")
- msg.attach(html_part)
- with smtplib.SMTP(config.SMTP_HOST, config.SMTP_PORT) as server:
- if config.SMTP_USER and config.SMTP_PASS:
- server.starttls()
- server.login(config.SMTP_USER, config.SMTP_PASS)
- server.sendmail(config.SMTP_FROM, to_email, msg.as_string())
- return True
- except Exception as e:
- print(f"FAILED TO SEND EMAIL: {e}")
- return False
- def send_verification_email(to_email: str, token: str, lang: str = "en"):
- verify_url = f"{config.FRONTEND_URL}/{lang}/auth?verify_token={token}"
-
- # Simple templates based on language
- templates = {
- "en": {
- "subject": "Verify your Radionica 3D account",
- "body": f"""
- <h2>Welcome to Radionica 3D!</h2>
- <p>Please click the link below to verify your email address and activate your account:</p>
- <p><a href="{verify_url}" style="padding: 10px 20px; background-color: #000; color: #fff; text-decoration: none; border-radius: 5px;">Verify Email</a></p>
- <p>Or copy this link: {verify_url}</p>
- """
- },
- "me": {
- "subject": "Potvrdite vaš Radionica 3D nalog",
- "body": f"""
- <h2>Dobrodošli u Radionicu 3D!</h2>
- <p>Kliknite na link ispod kako biste potvrdili vašu email adresu и aktivirali nalog:</p>
- <p><a href="{verify_url}" style="padding: 10px 20px; background-color: #000; color: #fff; text-decoration: none; border-radius: 5px;">Potvrdi Email</a></p>
- <p>Ili kopirajte ovaj link: {verify_url}</p>
- """
- },
- "ru": {
- "subject": "Подтвердите вашу учетную запись Radionica 3D",
- "body": f"""
- <h2>Добро пожаловать в Radionica 3D!</h2>
- <p>Пожалуйста, нажмите на ссылку ниже, чтобы подтвердить свой email и активировать аккаунт:</p>
- <p><a href="{verify_url}" style="padding: 10px 20px; background-color: #000; color: #fff; text-decoration: none; border-radius: 5px;">Подтвердить Email</a></p>
- <p>Или скопируйте эту ссылку: {verify_url}</p>
- """
- },
- "ua": {
- "subject": "Підтвердіть вашу обліковий запис Radionica 3D",
- "body": f"""
- <h2>Ласкаво просимо до Radionica 3D!</h2>
- <p>Будь ласка, натисніть на посилання нижче, щоб підтвердити свій email та активувати акаунт:</p>
- <p><a href="{verify_url}" style="padding: 10px 20px; background-color: #000; color: #fff; text-decoration: none; border-radius: 5px;">Підтвердити Email</a></p>
- <p>Або скопіюйте це посилання: {verify_url}</p>
- """
- }
- }
-
- tpl = templates.get(lang, templates["en"])
- return send_email(to_email, tpl["subject"], tpl["body"])
|