Files
PVHBackend/utils/mail.py
T

73 lines
2.4 KiB
Python

import os
import smtplib
import logging
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# Настройка логирования
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
def send_lead_to_email(name, phone, email):
"""
Отправляет информацию о заявке на фиксированный email rkplastic@mail.ru.
Args:
name (str): ФИО клиента
phone (str): Телефон клиента
email (str): Email клиента
Returns:
bool: True если отправка успешна, иначе False
"""
# Настройки Яндекс.Почты
SMTP_SERVER = "smtp.yandex.ru"
SMTP_PORT = 587
SENDER_EMAIL = "w0ron.black@yandex.ru"
SENDER_PASSWORD = os.environ.get('EMAIL_PASS')
RECIPIENT_EMAIL = "rkplastic@mail.ru"
if not SENDER_PASSWORD:
logger.error("❌ Не найдена переменная окружения EMAIL_PASS")
return False
# Тема и текст письма
subject = "Новая заявка с сайта"
body = f"""На сайте оставлена заявка:
Имя: {name}
Телефон: {phone}
Почта: {email}
"""
# Создаём сообщение
msg = MIMEMultipart()
msg['From'] = SENDER_EMAIL
msg['To'] = RECIPIENT_EMAIL
msg['Subject'] = subject
msg['Reply-To'] = SENDER_EMAIL
# Добавляем текст в кодировке UTF-8
msg.attach(MIMEText(body, 'plain', 'utf-8'))
try:
logger.info(f"Подключение к SMTP-серверу {SMTP_SERVER}:{SMTP_PORT}...")
server = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
server.starttls()
server.login(SENDER_EMAIL, SENDER_PASSWORD)
server.send_message(msg)
server.quit()
logger.info(f"✅ Заявка успешно отправлена на {RECIPIENT_EMAIL}")
return True
except smtplib.SMTPAuthenticationError:
logger.error("❌ Ошибка аутентификации. Проверьте пароль в переменной EMAIL_PASS")
return False
except smtplib.SMTPException as e:
logger.error(f"❌ Ошибка SMTP: {e}")
return False
except Exception as e:
logger.error(f"❌ Неожиданная ошибка: {e}")
return False