Wie wir alle wissen (oder sollte), können Sie Djangos Template-System verwenden, um E-Mail-Körper zu machen:Email Templat in django
def email(email, subject, template, context):
from django.core.mail import send_mail
from django.template import loader, Context
send_mail(subject, loader.get_template(template).render(Context(context)), '[email protected]', [email,])
Dies hat einen Fehler in meinem Kopf: das Thema und Inhalt eines bearbeiten E-Mail, müssen Sie sowohl die Ansicht als auch die Vorlage bearbeiten. Während ich rechtfertigen kann, Admin-Benutzern Zugriff auf die Templates zu geben, gebe ich ihnen keinen Zugriff auf den rohen Python!
Was wirklich cool wäre, wenn Sie Blöcke in der E-Mail angeben können, und ziehen Sie sie getrennt, wenn Sie die E-Mail senden:
{% block subject %}This is my subject{% endblock %}
{% block plaintext %}My body{% endblock%}
{% block html %}My HTML body{% endblock%}
Aber wie würden Sie das tun? Wie würdest du nur einen Block nach dem anderen rendern?
Well & * $ # me E-Mail zu vermeiden. Es klappt. Berücksichtigen Sie, dass der Basis mehr Felder hinzugefügt werden, um die Einstellung von/from-name/reply-to zu ermöglichen. – Oli
Hah, ich mache das mit drei verschiedenen Vorlagen, was ein PITA ist. Definitiv +1 von mir! –
Ich mag es. Ich habe immer nur separate Templates verwendet, was gut funktioniert, aber das ist viel schöner zu handhaben (zumal du sowieso immer den gleichen Kontext für alle Templates willst). –