tcdirectmail

Installation

tcdirectmail Extension installieren

Einrichten

Seite anlegen und Template zuweisen, welches Setup und Constants löscht sowie Rootlevel ist.

Das Template Setup inkludiert newsletter.ts

newsletter.ts

Hieraus wird die Mail generiert. Nicht vergessen das richtigr Charset einzustellen (hier UTF-8) und RealURL ggf. anpassen oder die entsprechenden Einträge löschen.

#--------------------------------
# General
#--------------------------------
tt_content.list.20 >
plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE >
plugin.tx_cssfilelist._CSS_DEFAULT_STYLE >
plugin.tx_indexedsearch._CSS_DEFAULT_STYLE >
plugin.tx_macinasearchbox_pi1._CSS_DEFAULT_STYLE >
plugin.tx_sgsearch._CSS_DEFAULT_STYLE >
plugin.tx_newloginbox_pi1._CSS_DEFAULT_STYLE >
plugin.tx_newloginbox_pi3._CSS_DEFAULT_STYLE >
plugin.tx_srlanguagemenu_pi1._CSS_DEFAULT_STYLE >
plugin.tx_thmailformplus_pi1._CSS_DEFAULT_STYLE >


config.removeDefaultJS = 1
config.inlineStyle2TempFile = 0

# Urls
config.simulateStaticDocuments = 0 
config.tx_realurl_enable = 1
config.prefixLocalAnchors = all
config.no_cache = 0

[globalString = ENV:HTTP_HOST=myhost.de]
    config.baseURL = myhost.de
[global]

# Title
config.noPageTitle = 2
page.headerData {
  10 = TEXT   
  10.dataWrap = <title>Default Site -  {page:title}</title> 
}

# RTE
content.RTE_compliant = 1
content.RTE_compliant.mode =
config.renderCharset=UTF-8

# Comments
tt_content.stdWrap.prefixComment >

 
# Header
config {
  # xhtml-transitional
  # htmlTag_langKey  ...set in language dialog
  doctype = xhtml_trans
  xhtml_cleaning = all
  xmlprologue = none
  headerComment (
    Design and Programming by www.rootsystem.de
  )
}

# Spam
config.spamProtectEmailAddresses = 1
config.spamProtectEmailAddresses_atSubst = (at)


#--------------------------------
# Page
#--------------------------------
page = PAGE
page {

    # ---------- General ----------
    typeNum = 0
    bodyTag = <body>
    meta.DESCRIPTION.field = abstract
    meta.AUTHOR.field = author
    meta.KEYWORDS.field = keywords
    meta.audience  = all
    config.metaCharset =UTF-8
    config.additionalHeaders = Content-Type:text/html;charset=UTF-8
 
    # Comments
    config.xhtml_cleaning = all
    config.disablePrefixComment = 1
   
    headerData {
        70 = TEMPLATE
        70.template.file = fileadmin/layout/html/rsys_page_newsletter.html
          70.template = FILE
          70.subparts.DOCUMENT
          70 {
            workOnSubpart = HEADER

            # ---------- Content ----------
            marks {

                # ---------- RSYS_HEADER_LEFT ----------
                RSYS_HEADER_LEFT = TEXT
                RSYS_HEADER_LEFT
            }
        }
    }
}


#--------------------------------
# content header
#--------------------------------
lib.stdheader >
lib.stdheader = CASE
lib.stdheader {
  key.field = header_layout
 
  default = TEXT
  default.field = header
  default.wrap = <h1>|</h1>
 
  1 = TEXT
  1.field = header
  1.wrap = <h2>|</h2>
 
  2 = TEXT
  2.field = header
  2.wrap = <h3>|</h3>
 
  # hidden
  100 = TEXT
  100.value = 
 
}


#--------------------------------
# Page Content and Menu
#--------------------------------
page.10.template.file = fileadmin/layout/html/rsys_page_newsletter.html

page = PAGE
page {


  # ---------- Template ----------
  10 = TEMPLATE
  10.template = FILE
 
  10.subparts.DOCUMENT < tempTitle.sectionMenu
  10 {
    workOnSubpart = DOCUMENT

    # ---------- Content ----------
    marks {
 
    # ---------- RSYS_CONTENT_HEADERPICTURE ---------
    RSYS_CONTENT_HEADERPICTURE = TEXT
    RSYS_CONTENT_HEADERPICTURE {
        data = levelmedia:3 // levelmedia:2 // levelmedia:1 // levelmedia:0
        file { 
        import.data = levelmedia:3 // levelmedia:2 // levelmedia:1 // levelmedia:0
        import = uploads/media/
        import.listNum = 0
     }
    }
    # ---------- end RSYS_CONTENT_HEADERPICTURE ---------

   
    # ---------- RSYS_CONTENT_0 ----------
    RSYS_CONTENT_0 = CONTENT
    RSYS_CONTENT_0 {
     table = tt_content
     select.orderBy = sorting
     select.where = colPos = 0
     select.languageField = sys_language_uid 
    }
    # --- end RSYS_CONTENT_0
 
     
    # ---------- RSYS_CONTENT_1 ----------
    RSYS_CONTENT_1 = CONTENT
    RSYS_CONTENT_1 {
     table = tt_content
     select.orderBy = sorting
     select.where = colPos = 1
     select.languageField = sys_language_uid 
    }
    # --- end RSYS_CONTENT_1
   
    # ---------- RSYS_CONTENT_2 ----------
    RSYS_CONTENT_2 = CONTENT
    RSYS_CONTENT_2 {
     table = tt_content
     select.orderBy = sorting
     select.where = colPos = 2
     select.languageField = sys_language_uid
    }
    # --- end RSYS_CONTENT_2
   
    # ---------- RSYS_CONTENT_3 ----------
    RSYS_CONTENT_3 = CONTENT
    RSYS_CONTENT_3 {
     table = tt_content
     select.orderBy = sorting
     select.where = colPos = 3
     select.languageField = sys_language_uid
    }
    # --- end RSYS_CONTENT_3
 
   
    # --- RSYS_ABSTRACT
    RSYS_ABSTRACT = COA
    RSYS_ABSTRACT {
        10 = TEXT
        10.field = abstract
    }
   
    # --- end RSYS_ABSTRACT
   
   
    # ---------- RSYS_FOOTER ----------
    RSYS_FOOTER = COA
    RSYS_FOOTER {

     10 = HMENU
     10.special=rootline
     10.special.range= 1 | -1
     10.1=TMENU
     10.1.NO.allWrap=  | / |*|| / |*||

     30 = TEXT
     30.if.isTrue.field=subtitle
     30.field = subtitle
     30.wrap =  - |
    }
    # --- end RSYS_FOOTER
   
    }
    # --- end marks 
   
  }
  # --- end 10

}
# --- end page

Das zugehörige html Template:

Für Mails ist es wohl besser inline styles zu verwenden. Deshalb hier der Subpart HEADER

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
     <title>rsysNewsletterDesign1.0</title>
   
    <!-- ###HEADER### -->
    <style type="text/css">
        /*<![CDATA[*/
        <!--
        body {
            /* text */
            font-family: "Microsoft Sans Serif", sans-serif;
            font-size: 12px;
            text-align: left;
            line-height:1.3em;
        }
       
        td,
        th {
       
        }
        a,
        .filelinks a {
            /* text */
            text-decoration: none;
           
            /* border */
            margin: 0px;
            padding: 0px;
        }
       
        a:hover,
        .filelinks a:hover {
            /* text */
            text-decoration: none;
        }
       
        td a {
        }
       
        th a {
        }

-->
        /*]]>*/
    </style>
    <!-- ###HEADER### -->
   
</head>
<body>

<!-- ###DOCUMENT### -->
   
    <div id="body_overlay">
        <div id="rsys_header">
            <div id="rsys_header_content">
                <div id="rsys_header_left">
                </div>
                <div id="rsys_header_right">                   
                </div>
            </div>
        </div>
   
        <div id="page_box">   
            <div id="minheight"></div>
            <div id="page_box_left">
               
            </div>
            <div id="page_box_right">   
                <div  id="rsys_content_0" class="rsys_content rsys_content_text">
                        <!--TYPO3SEARCH_begin-->
                        ###RSYS_CONTENT_0###   
                </div>
                <div  id="rsys_content_1" class="rsys_content rsys_content_text">
                        ###RSYS_CONTENT_1###

                </div>       
                <div  id="rsys_content_2" class="rsys_content rsys_content_text">
                   
                        ###RSYS_CONTENT_2###
                       
                </div>
                <div  id="rsys_content_3" class="rsys_content rsys_content_text">
                   
                        ###RSYS_CONTENT_3###
                        <!--TYPO3SEARCH_end-->
                </div>
            </div>
        </div>
        <div id="footer"></div>
    </div>
   
    <!-- ###DOCUMENT### -->
</body>
</html>

Content

Seite vom Typ newsletter anlegen. In den Seiteneigenschaften kann der Newsletter konfiguriert werden. Dann beliebigen Seiteninhalt anlegen.

Hierzu müssen auch Empfängergruppen angelegt werden die dann in den Seiteneigenschaften ausgewählt werden müssen.

Versenden

In der Ansicht Newsletter mit Preview: Html Plain kann man sich das Ergebniss ansehen. Das Versenden per Cron hat mich wahnsinnig gemacht. Letztlich ging es erst nachdem man

    • Im Backend: Tools/Newsletter Kontrollsystem die php Pfade korrigiert (bei Extension gesetzt)
    • In /ext/tcdirectmail/die Dateien mailer.php, advanced_connect.php und bounce.php auf executable gesetzt hat
    • Den Cronjob angelegt
    • safe_mode abgeschaltet hat - und zwar für PHP im Client Mode! Da gibt's eine Extra php.ini (z.B. /etc/php5/cli/php.ini)



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

    Bugs in Verbindung TYPO3 4.6

    Um die Extension unter TYPO3 4.6 zum laufen zu bekommen musste ich folgendes ändern:

    Fehler "undefined method t3lib_div::fixed_lgd_pre"

    in mod1/index.php "fixed_lgd_pre" ersetzen mit "fixed_lgd_cs".

    Cronjob

    Damit der cronjob funktioniert:

    • BE User _cli_tcdirectmail anlegen
    • In cli/mailer.phpsh den PHP Pfad anpassen (#!/usr/bin/php)

    Aufruf in crontab:

    * *     * * *   root    /var/www/typo3conf/ext/tcdirectmail/cli/mailer.phpsh

     

    Erstellt: 11/2011| Geändert: 10/2015

    TYPO3 V6.1

    Leider läuft die Extension nicht mehr auf TYPO3 V6.1. Also musste ich wieder zurück zu der direct_mail Extension - wobei mein Eindruck ist, daß diese inzwischen besser zu handhaben ist.

    Update

    Die Version 3.1.1 läuft laut Doku unter TYPO3 6.2 - getestet habe ich das bisher noch nicht, ich bin bei der directmail Extension geblieben.

    Erstellt: 10/2013| Geändert: 10/2015