Wagtail Newsletter mit Birdsong

8. Dezember 2020 0 Von glanzel

Birdsong ist das einzige Newsletter Tool was komplett in Wagtail integriert ist. (Andere Django Newsletter Tolls lassen sich aber vermutlich auch integrieren).

Birdsong lässt sich wie folgt installieren:

pip3 install wagtail-birdsong
pip3 install mjml

Statt alle Dokumente selbst zu erstellen empfehle ich nun die Testapp unter https://github.com/neon-jungle/wagtail-birdsong/tree/master/tests/app herunterzuladen.
Nun den app ordner nun in irgendetwas sinvolles umbennene
zb newsletter
und den newsletter ordner nun wie ander django apps auch einfach in euren django projektordner kopieren (jene wo auch manage.py residiert).
(die dateien setting.py und urls.py innerhalb des newsletter ordner können gelöscht werden)

Füge nun das folgende zu deinen installed Apps hinzu:

'mjml',
'birdsong',
'wagtail.contrib.modeladmin',
'newsletter', #den von dir vergebenen ordnernamen 

nach einem:

python3 manage.py migrate sollte nun der Eintrag „Sale Email“ in deinem Wagtail Menü erscheinen.

Fall ihr den Modelnamen ändert sollte ihr nicht vergessen makemigrations und migrate aufrufen vorher wird der eintrag nicht angezeigt

optional: falls mjml auch in einem webspace laufen sollte ihr den httpserver mode wählen dazu muss die setting datei um folgendes erweitert werden.
MJML_BACKEND_MODE = 'httpserver'
MJML_HTTPSERVERS = [{
'URL': 'https://api.mjml.io/v1/render', #Mjml API
'HTTP_AUTH': ('SECRET_KEY'),
}]

der SECRET_KEY muss auf https://mjml.io/api erstellt werden.

Damit nun tatsächlich eine Email versendet werden kann müssen noch weitere zeilen zur setting datei (zb settings/base.py) hinzugefügt werden.

EMAIL_BACKEND = ‚django.core.mail.backends.smtp.EmailBackend‘
EMAIL_HOST = ’smtp.gmail.com‘
EMAIL_HOST_USER = “
EMAIL_HOST_PASSWORD = ‚ #past the key or password app here
EMAIL_PORT = 587
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = ‚default from email‘

Achtung in der Datei settings/dev.py ist bereits zum testen ein EMAIL_BACKEND = ‚django.core.mail.backends.console.EmailBackend‘ angegeben dies muss gelöcht werden um Emails per smtp versenden zu können.