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:

  1. Mehrsprachigkeit wird nicht gut unterstützt (Zumindest nicht mit News) - ich habe dies nicht vollständig getestet
  2. Content wird als Anonymer User angelegt
  3. Ich habe noch kein gutes Plugin gefunden für das Abonnieren
  4. Die erzeugten Mails fallen meist durchs Spam Filter des Email Kontos
  5. Das Abonnement kann nicht sprachspezifisch erfolgen (ein Benutzer sollte die Sprache des Newsletters angeben können)
  6. Wenn man eine Newslist inkludiert wird diese nicht gerendert (nur News die via include records inkludiert wurden)
  7. 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).
  8. 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.

Erstellt: 07/2010| Geändert: 03/2023

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).

Erstellt: 07/2010| Geändert: 10/2015

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: 

  1. CSS Styled Content (css_styled_content)
  2. CSS-based tmpl (tt_news)
  3. default CSS-styles (tt_news)
  4. Direct Mail Content Boundaries (direct_mail) - for categories
  5. Direct Mail Plain Text (direct_mail)
  6. 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.

Erstellt: 07/2010| Geändert: 10/2015

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>

Erstellt: 07/2010| Geändert: 10/2015

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

Erstellt: 07/2010| Geändert: 03/2023

Cron job

Um alle 5 Minuten zu prüfen:

*/5 * * * * typo3conf/ext/direct_mail/mod/dmailerd.phpcron> /dev/null 

Erstellt: 07/2010| Geändert: 10/2015

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###

Erstellt: 07/2010| Geändert: 10/2015