direct_mail
Das ganze Ding hat viel Nerven gekostet - und - nach 3 Tagen Arbeit habe ich es zum Laufen gebracht, jedoch hat es immer noch viele Beschränkungen:
- Mehrsprachigkeit wird nicht gut unterstützt (Zumindest nicht mit News) - ich habe dies nicht vollständig getestet
- Content wird als Anonymer User angelegt
- Ich habe noch kein gutes Plugin gefunden für das Abonnieren
- Die erzeugten Mails fallen meist durchs Spam Filter des Email Kontos
- Das Abonnement kann nicht sprachspezifisch erfolgen (ein Benutzer sollte die Sprache des Newsletters angeben können)
- Wenn man eine Newslist inkludiert wird diese nicht gerendert (nur News die via include records inkludiert wurden)
- Newsletter Seiten brauchen Code in ihrem Seiten TS - demnach ist es nicht einfach neue Newsletter Seiten anzulegen für Redakteure (Einziger Ausweg: Copy und paste exisiterender Seiten).
- Newsletter Seiten müssen direkt im System Ordner der News angelegt sein - in Unterordnern kann der Newsletter nicht erstellt werden.
Fazit: Dies ist nicht mein Lieblings-Plugin, mal nach besserem Ausschau halten...
Inzwischen habe ich selbst ein Newsletter-Plugin programmiert, da direct_mail bis zum Jahr 2020 nur für viel zu alte TYPO3 Versionen verfügbar war. Auch jetzt ist es nur für Version 10 verfügbar und ich arbeite nur noch mit Version 11 oder demnächst 12. Aber immerhin ist bei github eine Version 11 verfügbar (https://github.com/kartolo/direct_mail/tree/11.x). Ich habe diese aber noch nicht ausprobiert nachdem es nun ewig keine aktuelle Version gab, habe ich diese Extension seit Jahren nicht mehr eingesetzt.
Das meiste unten ist aus dem Jahr 2015 und bezieht sich maximal auf TYPO3 Version 7.6, aber ich denke das meiste davon ist trotzdem noch gültig, nur nicht von mir verifiziert.
Installation
Extensions
Bevor man DirectMail installiert muss man tt_address (Version 1.0.4) installieren.
Dann die Extension DirectMail (direct_mail 2.2.0) und optional das DirectMail Subscription Plugin (direct_mail_subscription 1.1.0).
Konfiguration
System Ordner
Anlegen einer neuen Seite vom Typ System Ordenr, Name z.B. DirectMail System Folder. Modifikationen des Moduls DirectMail Module werden im TSconfig dieser Seite gespeichert..
Es muss das Plugin Direct Mail enthalten
Folgendes in das TS der Seite aufnehmen:
mod.web_modules.dmail {
from_name = Knolledge InfoSystem
from_email= info@example.com
return_path = info@example.com
organisation = Knolledge
replyto_email = info@example.com
replyto_name = Knolledge InfoSystem
HTMLParams =
plainParams = &type=99
long_link_rdct_url=http://knolledge.local/
long_link_mode=1
includeMedia=0
priority = 3
quick_mail_encoding = quoted-printable
direct_mail_encoding = quoted-printable
quick_mail_charset=UTF-8
direct_mail_charset=UTF-8
# UID's of the tt_address records to use for test-sending:
test_tt_address_uids = 1
# table name of a userdefined table similar to tt_address (same
fields) which may be used for distribution also.
userTable =
enablePlain = 1
enableHTML = 1
http_username =
http_password =
sendOptions=3
categories {
1 = Technical TYPO3 Info
2 = TYPO3 Server Info
3 = Knolledge Project
}
}
TCEFORM.tt_content.module_sys_dmail_category.PAGE_TSCONFIG_IDLIST = 59
TCEFORM.tt_address.module_sys_dmail_category.PAGE_TSCONFIG_IDLIST = 59
TCEFORM.fe_users.module_sys_dmail_category.PAGE_TSCONFIG_IDLIST = 59
TCEFORM.sys_dmail_group.select_categories.PAGE_TSCONFIG_IDLIST = 59
TCEFORM.tt_content.module_sys_dmail_category.disabled = 0
TCEFORM.tt_address.module_sys_dmail_category.disabled = 0
TCEFORM.fe_users.module_sys_dmail_category.disabled = 0
TCEFORM.sys_dmail_group.select_categories.disabled = 0
mod.web_modules.dmail.flowedFormat=0
mod.web_modules.dmail.HTMLParams=&L=1
mod.web_modules.dmail.use_domain=0
mod.web_modules.dmail.use_rdct=0
mod.web_modules.dmail.enable_jump_url=0
mod.web_modules.dmail.plainParams=&type=99&L=1
Die Kategorien werden im System Ordner angelegt und müssen übersetzt werden.
Template für den Newsletter
Standard Templates
Der System Ordner Seite ein Template zuordnen welches dann von den Unterseiten mit Newslettern verwendet wird.
Das Template muss folgende statische Plugins enthalten:
- CSS Styled Content (css_styled_content)
- CSS-based tmpl (tt_news)
- default CSS-styles (tt_news)
- Direct Mail Content Boundaries (direct_mail) - for categories
- Direct Mail Plain Text (direct_mail)
- Direct Mail News Plain Text (direct_mail)
Die Reihgenfolge ist wichtig: ?Direct Mail News Plain Text? muss nach ?Direct Mail Plain Text? kommen.
Rendern
Direct Mail News Plain Text (direct_mail) rendert nur News vom Typ insert record.
Page template constants and setup
Die Flags Clear Setup, Clear Constants und Rootlevel müssen gesetzt sein.
Folgendes in die Constants des Templates aufnehmen:
# Plain text template for mail
plugin.tx_directmail_pi1.file.template = fileadmin/templates/tx_directmail_pi1_plaintext.tmpl
# subscription
plugin.feadmin.dmailsubscription.email = info@example.com
plugin.feadmin.dmailsubscription.emailName = Knolledge InfoService
plugin.feadmin.dmailsubscription.pid = 59
plugin.feadmin.dmailsubscription.file.templateFile = fileadmin/templates/newsletter_subscription.html
plugin.tx_directmail_pi1.siteUrl = knolledge.local
Folgendes in das Setup des Templates aufnehmen:
tmp = TEXT
tmp.value < plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE
plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE >
plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE >
plugin.tt_news._CSS_DEFAULT_STYLE >
plugin.tx_cssfilelist._CSS_DEFAULT_STYLE >
plugin.tx_indexedsearch._CSS_DEFAULT_STYLE >
plugin.tx_newloginbox_pi1._CSS_DEFAULT_STYLE >
plugin.tx_newloginbox_pi3._CSS_DEFAULT_STYLE >
# config
tt_content.stdWrap.prefixComment >
# charset
config.renderCharset=utf-8
config.removeDefaultJS = 1
# Comments
tt_content.stdWrap.prefixComment >
tt_content.stdWrap.postUserFunc = tx_directmail_container->insert_dMailer_boundaries
# Header
config {
//xhtml-transitional
//htmlTag_langKey = ...set in language dialog
doctype = xhtml_trans
xhtml_cleaning = all
xmlprologue = none
}
# page
page = PAGE
page {
config.metaCharset = utf-8
headerData.10=TEXT
headerData.10.value (
<style type="text/css">
* {
margin:0;padding:0;
}
body {
background: #fff;
color: #666;
font-family: "lucida grande", verdana, arial, sans-serif;
font-size: 12px;
}
div#main {
padding:12px;
}
</style>
)
headerData.20 = FILE
headerData.20.file = fileadmin/css/tt_news_newsletter_styles.css
headerData.20.wrap = <style type="text/css"> | </style>
headerData.30 = TEXT
headerData.30 < tmp
headerData.30.wrap = <style type="text/css"> | </style>
bodyTag=<body>
10 < styles.content.get
10.wrap = <div><img src="fileadmin/images/knolledge_header.jpg"></div><div id="main">|</div>
10.select.languageField = sys_language_uid
# comments
config.xhtml_cleaning = all
config.disablePrefixComment = 1
}
# News
plugin.tt_news.templateFile = fileadmin/templates/tt_news_newsletter_template.html
# News messages
plugin.tt_news._LOCAL_LANG.en {
noResultsMsg = no open issues found
}
Sprache
Seiten Template Constants und Setup
Das Feld languageField in das Setup aufnehmen.
10.select.languageField = sys_language_uid
Das Template knolledge - Language oder fogenden Code in Setup:
#--------------------------------
# Language
#--------------------------------
config {
linkVars = L
sys_language_mode = content_fallback
sys_language_overlay = hideNonTranslated
}
# Standard language UID 0 -> English
config.sys_language_uid = 0
config.language = en
config.locale_all = english
# Alternate language UID = 1 -> German
[globalVar = GP:L = 1]
config.sys_language_uid = 1
config.language = de
config.locale_all = de_DE
[global]
config.htmlTag_langKey < config.language
Seiten TSconfig des System Ordners
Ändern der Seiten TSconfig Parameter (Vielleicht geht es auch eleganter - hier ist es hardcodiert Deutsch):
mod.web_modules.dmail.HTMLParams=&L=1
mod.web_modules.dmail.plainParams=&type=99&L=1
Newsletter HTML Template
Editieren von templates/tt_news_newsletter_template.html wie gewünscht.
Newsletter Seiten
Jeder Newsletter muss das Seiten TSconfig von oben erneut inkludieren (Nicht sicher ob es im System Ordner erforderlich ist - hier ist esjedenfalls erforderlich):
TCEFORM.tt_content.module_sys_dmail_category.PAGE_TSCONFIG_IDLIST = 59
TCEFORM.tt_address.module_sys_dmail_category.PAGE_TSCONFIG_IDLIST = 59
TCEFORM.fe_users.module_sys_dmail_category.PAGE_TSCONFIG_IDLIST = 59
TCEFORM.sys_dmail_group.select_categories.PAGE_TSCONFIG_IDLIST = 59
TCEFORM.tt_content.module_sys_dmail_category.disabled = 0
TCEFORM.tt_address.module_sys_dmail_category.disabled = 0
TCEFORM.fe_users.module_sys_dmail_category.disabled = 0
TCEFORM.sys_dmail_group.select_categories.disabled = 0
Der erste Absatz deklariert die location der News Kategorien, der zweite die Kategorien Auswahl im Backend für Content.
Anti Spam
Um Styles inline zu machen muss folgendes in das Setup des Templates des System Ordners:
Am Anfang von Setup:
tmp = TEXT
tmp.value < plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE
plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE >
plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE >
plugin.tt_news._CSS_DEFAULT_STYLE >
plugin.tx_cssfilelist._CSS_DEFAULT_STYLE >
plugin.tx_indexedsearch._CSS_DEFAULT_STYLE >
plugin.tx_newloginbox_pi1._CSS_DEFAULT_STYLE >
plugin.tx_newloginbox_pi3._CSS_DEFAULT_STYLE >
....
Später im Setup:
headerData.20 = FILE
headerData.20.file = fileadmin/css/tt_news_newsletter_styles.css
headerData.20.wrap = <style type="text/css"> | </style>
headerData.30 = TEXT
headerData.30 < tmp
headerData.30.wrap = <style type="text/css"> | </style>
Backend User
Im Seiten TS oder im User TS setzen:
# prefix for page:
mod.web_modules.dmail.menu.[prop]
# prefix for beuser:
page.mod.web_modules.dmail.menu.[prop]
# tabbed menu
tabmenu = 1
# news
1 = 1
# direct
2 = 1
# quick
3 = 1
# recip
4 = 1
# mailengine
5 = 1
# convert
6 = 1
# conf
7 = 1
Cron job
Um alle 5 Minuten zu prüfen:
*/5 * * * * typo3conf/ext/direct_mail/mod/dmailerd.phpcron> /dev/null
Bugs
Fehler 0004381: Plaintext content not fetched
siehe http://bugs.typo3.org/view.php?id=4381
Fix: Auskommentieren in direct_mail/mod/class.web_mod_dmail.php (line 3916):
// $this->tmpl->forceTemplateParsing = 1;
Sprachen und Kategorien
Dmail Kategorien funktionieren nicht mit mehr als einer Sprache auf derselben Seite - siehe http://bugs.typo3.org/view.php?id=5024
Beschränkungen von Geschützten Seiten
Inhalt von geschützten Seiten wird nicht gerendert, weil das compilieren als nicht eingeloggter User geschieht.
Abonnieren?
Das senden eine Email an FEUsers und der Abmelden Link funktionieren nicht.
Unsubscribe link:
knolledge.local=
##USER_uid###