2015-04-18 4 views
1

Я пытаюсь настроить шаблон HTML, который принимает некоторые формы полей для заголовка темы и для части содержимого.Ошибка шаблона электронной почты Django

views.py

if len(recipient) > 0: 
    messages.success(request, "Receipt sent successfully!") 

    subject = "Your Booking Reference: " 
    to = [recipient] 
    from_email = '[email protected]' 

    template = get_template('booking/email/booking_reference.html') 

    message = EmailMessage(subject, template, from_email, ['[email protected]']) 
    message.content_subtype = 'html' 
    message.send() 

    return HttpResponse("Sent!")    
else: 
    return index(request) 

Всякий раз, когда я прошу по электронной почте для отправки, я получаю следующее сообщение об ошибке: 'Template' object has no attribute 'encode'

Если я закомментировать message.content_subtype = 'html', я получаю нужный HttpResponse, но без отправки электронной почты. Я добавил эту настройку в мой settings.py файл, так что все электронные письма получают выход на консоль, но ничего не отображается

settings.py

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' 
+0

Это потому, что консоль ожидает, что тип содержимого будет html. Рекомендуется оставить параметр content_subtype равным по умолчанию (который является «text/plain») – karthikr

+0

Такая же ошибка, когда я меняю ее на это – user2942863

ответ

0

Хорошо, я думаю, что проблема в том, что вы не добавить контекст в шаблоне так попробуйте это:

if len(recipient) > 0: 
    messages.success(request, "Receipt sent successfully!") 
    subject = "Your Booking Reference: " 
    to = [recipient] 
    from_email = '[email protected]' 

    template = loader.get_template('booking/email/booking_reference.html') 
    context = RequestContext(request, locals()) 
    template = template.render(context) 
    message = EmailMessage(subject, template, from_email, ['[email protected]']) 
    message.content_subtype = 'html' 
    message.send(True) 

    return HttpResponse("Sent!")    
else: 
    return index(request) 
+0

Perfect! СПАСИБО, все отлично работало, за исключением того, что я должен был исключить загрузчика, поскольку я уже импортировал функцию! – user2942863

1

Try написать это:

message = EmailMultiAlternatives (subject, template, from_email, [[email protected]]) 
message.attach_alternative(template, "text/html") 
+0

Это вызывает ту же ошибку :( – user2942863

+0

Хорошо попробуйте написать message.send (True) – Tanorix

+0

Это работает, но он не выводит сообщение на консоль – user2942863

Смежные вопросы