La création de modèles d'e-mail avec Django
Je veux envoyer le HTML-e-mails, en utilisant des modèles Django comme ceci:
<html>
<body>
hello <strong>{{username}}</strong>
your account activated.
<img src="mysite.com/logo.gif" />
</body>
Je ne trouve rien sur send_mail
, et django-mailer envoie uniquement des modèles HTML, sans dynamique de données.
Comment puis-je utiliser Django moteur de template pour générer des e-mails?
- Avis Django
1.7
offrehtml_message
danssend_email
stackoverflow.com/a/28476681/953553 - Salut @anakin, j'ai eu du mal avec ce problème pendant un long moment et a décidé de créer un paquet pour que. Je serais très heureux de recevoir vos commentaires : github.com/charlesthk/django-simple-mail
Vous devez vous connecter pour publier un commentaire.
De les docs, pour envoyer le HTML de l'e-mail que vous souhaitez utiliser d'autres types de contenu, comme ceci:
Vous aurez probablement besoin de deux modèles pour vos e-mails en texte brut qui ressemble à quelque chose comme cela, stocké dans votre répertoire de modèles de sous
email.txt
:et un HTMLy un, stockées sous
email.html
:Vous pouvez ensuite envoyer un e-mail à l'aide de ces deux modèles par l'utilisation de
get_template
, comme ceci:plaintext
ethtmly
, et juste définir des modèles et des contextes lorsque vous définisseztext_content
ethtml_content
.Les garçons et les Filles!
Depuis Django 1.7 send_email méthode de la
html_message
paramètre a été ajouté.De sorte que vous pouvez juste:
render_to_string
astuce, très pratique.J'ai fait django-basé sur un modèle de courriel dans un effort pour résoudre ce problème, inspiré par cette solution (et la nécessité d', à un certain point, passer de l'utilisation de modèles django à l'aide d'un mailchimp etc. ensemble de modèles de transactions basées sur des modèles de courriels pour mon propre projet). Il est toujours un travail en cours, mais pour l'exemple ci-dessus, vous feriez:
Avec l'ajout de la suite à settings.py (pour compléter l'exemple):
Cela va automatiquement chercher des modèles nommé 'templated_email/email.txt" et "templated_email/email.html" pour la plaine et les parties html respectivement, dans les conditions normales de django modèle dirs/chargeurs (se plaindre si il ne peut pas trouver au moins un de ceux-ci).
django.shortcuts.send_templated_mail
: code.djangoproject.com/ticket/17193Utilisation EmailMultiAlternatives et render_to_string de rendre l'utilisation de deux modèles (l'un dans la plaine du texte et un en html):
J'ai créé Django Simple Mail d'avoir un simple, personnalisable et réutilisable modèle pour tous les e-mails transactionnels vous souhaitez envoyer.
E-mails contenus et modèles peuvent être édités directement à partir de django admin.
Avec votre exemple, vous devez inscrire votre adresse de courriel :
Et envoyer de cette façon :
J'aimerais obtenir de la rétroaction.
Il y a une erreur dans l'exemple.... si vous l'utilisez comme l'écrit, l'erreur suivante se produit:
Vous aurez besoin d'ajouter d'importation suivantes:
et modifier le dictionnaire pour la:
Voir http://docs.djangoproject.com/en/1.2/ref/templates/api/#rendering-a-context
Django De Messagerie Basé Sur Un Modèle est une fonctionnalité riche, application Django pour envoyer des emails avec Django système de template.
Installation:
Configuration:
Modèle:
Python:
Plus d'infos: https://github.com/artemrizhov/django-mail-templated
J'ai écrit un extrait de qui permet d'envoyer des e-mails rendus avec des modèles stockés dans la base de données. Un exemple:
Si vous voulez dynamique des modèles de courriels pour votre mail, puis d'enregistrer le contenu de l'email dans vos tables de base de données.
C'est ce que j'ai enregistré en tant que code HTML dans la base de données =
Dans vos vues:
Cela va envoyer du HTML dynamique modèle de ce que vous avez enregistrer dans la bd.
J'aime l'utilisation de cet outil afin de permettre facilement d'envoyer un email HTML et TXT avec facile contexte de traitement: https://github.com/divio/django-emailit