Files
2026-04-26 01:11:30 -04:00

43 lines
1.3 KiB
Python

import smtplib
import ssl
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from app.utils.logger import logger
def send_email_google(to_email, subject, html_content, text_content=None):
SMTP_SERVER = "smtp.gmail.com"
PORT = 587
FROM_EMAIL = "support@mermsemr.com"
APP_PASSWORD = "" # Set via env var: os.getenv("GMAIL_APP_PASSWORD")
msg = MIMEMultipart("alternative")
msg["Subject"] = subject
msg["From"] = FROM_EMAIL
msg["To"] = to_email
if text_content:
msg.attach(MIMEText(text_content, "plain"))
msg.attach(MIMEText(html_content, "html"))
context = ssl.create_default_context()
try:
with smtplib.SMTP(SMTP_SERVER, PORT) as server:
server.ehlo()
server.starttls(context=context)
server.ehlo()
server.login(FROM_EMAIL, APP_PASSWORD)
server.sendmail(FROM_EMAIL, to_email, msg.as_string())
logger.info(f"Google email sent to {to_email}")
except smtplib.SMTPAuthenticationError:
logger.error("Google SMTP auth failed: check FROM_EMAIL and APP_PASSWORD")
raise
except smtplib.SMTPConnectError as e:
logger.error(f"Google SMTP connection error: {e}")
raise
except Exception as e:
logger.error(f"Google SMTP send failed: {e}")
raise