Всем привет! Пытаюсь отправить письмо клиенту с вложением(может быть любым), которое загружает админ в админке. Пробую отправить письмо с pdf - получаю статус 200 и сообщение, что все успешно. Однако письмо совсем не приходит на почту, провал и гугл и яндекс почты. Подскажите в чем может быть ошибка?
models.py:
class LicenseMailConfig(SingletonModel):
"""Тексты письма для лицензий """
title = models.CharField(_('Заголовок'), max_length=255, blank=True, null=True)
first_body = models.TextField(_('Первый абзац'), blank=True, null=True)
second_body = models.TextField(_('Второй абзац'), blank=True, null=True)
promo_text = models.CharField(_('Промотекст'), max_length=255, blank=True, null=True)
btn_text = models.CharField(_('Текст кнопки'), max_length=100, blank=True, null=True)
btn_link = models.CharField(_('Ссылка кнопки'), max_length=255, blank=True, null=True)
employer_title = models.CharField(_('ФИО'), max_length=255, blank=True, null=True )
first_file = models.FileField(_('Первый файл'), max_length=255, blank=True, null=True, upload_to='config')
class Meta:
verbose_name = _('Тексты письма для лицензий')
def __str__(self):
return str(_('Тексты письма для лицензий'))
views.py:
class LicenseFormRequestView(BaseView):
"""Обработчик формы заявки лицензий"""
form_class = forms.LicenseForm
success_message = _('Ваш запрос благополучно отправлен')
def post_save(self, request, obj):
for k, v in request.POST.items():
if not k.startswith('attach_'):
continue
path = v.replace(settings.MEDIA_URL, '')
obj.attach_file(path)
def post(self, request, **kwargs):
data = deepcopy(request.POST)
form = self.form_class(data)
mail = core_models.LicenseMailConfig.get_solo()
if form.is_valid():
obj = form.save()
self.post_save(request, obj)
event = 'новая отправка формы "%s"' % obj._meta.verbose_name
try:
send_trigger_email(
event, obj=obj, fields=obj.email_fields
)
send_email(
'order_admin',
[data['email']],
'Ваш заказ на сайте %s' % settings.SITE_NAME,
params={
'request': request,
'site': settings.SITE_NAME,
'site_url': settings.SITE_URL,
'mail': mail,
},
first_file=mail.first_file.path
)
except (SMTPException, ConnectionError):
pass
return success_response(self.success_message)
return form_validation_error_response(form.errors)
emails.py:
def send_email(template, emails, subject, params=None, first_file=None, extra_headers=None, from_email=None, raise_error=False):
"""Отправка email с указанным шаблоном и параметрами"""
if from_email is None:
from_email = get_default_from_email()
message_html = render_to_string(
'emails/%s/%s.html' % (template, template), params, using='jinja2'
)
msg = EmailMessage(subject, message_html, from_email, emails, headers=extra_headers)
if first_file is not None:
msg.attach_file(first_file)
try:
return msg.send()
except (ConnectionError, SMTPException):
if raise_error:
raise
return 0