Site/OneCprogsite/programmer/utils/email_notifications.py

66 lines
2.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# programmer/utils/email_notifications.py
from django.core.mail import send_mail, EmailMultiAlternatives
from django.template.loader import render_to_string
from django.conf import settings
from django.utils.html import strip_tags
import logging
logger = logging.getLogger(__name__)
def send_callback_notification(callback_request):
"""
Отправляет уведомление о новой заявке на обратный звонок
"""
try:
subject = f'🚨 Новая заявка на обратный звонок от {callback_request.name}'
# HTML версия письма
html_message = render_to_string('emails/callback_notification.html', {
'callback': callback_request,
'site_url': settings.ALLOWED_HOSTS[0] if settings.ALLOWED_HOSTS else 'localhost',
})
# Текстовая версия письма
plain_message = strip_tags(html_message)
# Проверяем настройки email
if not all([settings.EMAIL_HOST_USER, settings.EMAIL_HOST_PASSWORD]):
logger.error("Email settings are not configured properly")
return False
# Отправляем email
send_mail(
subject=subject,
message=plain_message,
from_email=settings.DEFAULT_FROM_EMAIL,
recipient_list=settings.ADMIN_EMAILS,
html_message=html_message,
fail_silently=False,
)
logger.info(f"Email notification sent successfully for callback #{callback_request.id}")
return True
except Exception as e:
logger.error(f"Error sending email notification: {e}")
return False
def send_test_email():
"""
Функция для тестирования отправки email
"""
try:
send_mail(
subject='📧 Test Email from Django',
message='This is a test email from your Django application.',
from_email=settings.DEFAULT_FROM_EMAIL,
recipient_list=settings.ADMIN_EMAILS,
fail_silently=False,
)
return True
except Exception as e:
logger.error(f"Test email failed: {e}")
return False