Newsletter mit Direct Mail: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
Zeile 1: Zeile 1:
 
== Quickstart ==
 
== Quickstart ==
 +
=== Komplettes Beispiel ===
 +
Quellen:
 +
 +
http://blog.undkonsorten.com/typo3-newsletter-direct-mail-subscription (2013)
 +
 +
http://jweiland.net (2013)
 +
 +
====TypoScript====
 +
<pre>
 +
// Säuberung
 +
plugin {
 +
  tx_cssstyledcontent._CSS_DEFAULT_STYLE >
 +
  # .... und weitere ....
 +
}
 +
page {
 +
  stylesheet >
 +
  headerData.10 >
 +
  headerData.10 = FILE
 +
  headerData.10 {
 +
file = {$stylesheet}
 +
wrap =
 +
  }
 +
}
 +
config.disableAllHeaderCode = 0
 +
 +
 +
config.index_enable = 0
 +
config.spamProtectEmailAddresses >
 +
config.removeDefaultJS = 1
 +
tx_directmail_pi1.10.template.file = fileadmin/templates/nl/nl-text.html
 +
tx_directmail_pi1.10.marks {
 +
  HEADERTEXT = TEXT
 +
  HEADERTEXT.data = field:title
 +
  CONTENT < styles.content.get
 +
  CONTENT.renderObj = < plugin.tx_directmail_pi1
 +
  FOOTER < styles.content.getBorder
 +
  FOOTER.select.pidInList = 195
 +
  FOOTER.renderObj = < plugin.tx_directmail_pi1
 +
  FOOTER.wrap = ------------------------------------ |
 +
}
 +
page >
 +
page = PAGE
 +
page {
 +
  headerData.10= TEXT
 +
  headerData.10.value (
 +
    <style type="text/css">
 +
      <!--
 +
      @charset "utf-8";
 +
      * { margin:0px; padding:0px; }
 +
      img, a img {border:0;}
 +
      -->
 +
      </style>
 +
  )
 +
  bodyTag = <body marginheight="0" topmargin="0" marginwidth="0"  bgcolor="#eeeeee" leftmargin="0" style="margin: 0px; padding:0px; background-color: #eee; font-family:Tahoma, Verdana, Arial, sans-serif; font-size:13px; line-height:19px; color:#333333;">
 +
  10 = TEMPLATE
 +
  10.template = FILE
 +
  10.template.file = fileadmin/templates/nl/nl-html.html
 +
  10.marks {
 +
      HEADERLINK = TEXT
 +
      HEADERLINK {
 +
      value= &nbsp;klicken Sie hier&nbsp;
 +
        typolink.parameter.data = page:uid
 +
        typolink.ATagParams = style="color:#2131AD;"
 +
        typolink.extTarget = _blank
 +
        typolink.target = _blank
 +
        wrap = <p style="font-size: 11px; line-height: 15px; font-family: Tahoma, Arial, Helvetica, sans_serif; color: #333; margin: 0px;">Probleme bei der Darstellung des Newsletters? Dann | für die Webansicht</p>
 +
      }
 +
       
 +
      LOGO = IMAGE
 +
      LOGO.file = fileadmin/.../logo.gif
 +
       
 +
      HEADERTEXT = TEXT
 +
      HEADERTEXT.data = field:subtitle //field:title
 +
      HEADERTEXT.wrap =<h1 style="font-size: 16px; line-height: 18px;font-family: Tahoma, Arial, Helvetica, sans_serif; color: #ffffff; margin: 0px;font-weight: normal;">|</h1>
 +
 +
      CONTENT < styles.content.get
 +
          ## footer in border to be able to define different tags per column
 +
      FOOTER < styles.content.getBorder
 +
      FOOTER.select.pidInList = 3
 +
  }
 +
}
 +
 +
## output headers
 +
lib.stdheader.stdWrap.dataWrap = |
 +
lib.stdheader.10 {
 +
  1.dataWrap = <h1 style="padding:0; margin:0px 10px 10px 10px; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size:25px; font-weight:normal; line-height:33px; color:#4E4E4E;">|</h1>
 +
  2.dataWrap = <h2 style="padding:0; margin:0px 10px 10px 10px; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size:18px; font-weight:normal; line-height:24px; color:#4E4E4E;">|</h2>
 +
  3.dataWrap = <h3 style="padding:0; margin:10px; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size:13px; font-weight:bold; line-height:17px; color:#4E4E4E;">|</h3>
 +
  4.dataWrap = <h4 style="padding:0; margin:10px; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size:13px; font-weight:bold; line-height:17px; color:#333333;">|</h4>
 +
    ## extra h2 version
 +
  5.dataWrap = <h2 style="padding:0; margin:10px; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size:18px; font-weight:normal; line-height:24px; color:#990000"">|</h2>
 +
}
 +
## style for a tag
 +
lib.parseFunc_RTE.tags.link.typolink.ATagParams = style="color:#2131AD; text-decoration:none; border:0px;"
 +
## no class for p tag
 +
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.P.class >
 +
 +
## p tag for all columns
 +
#lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.P.style = font-family: Tahoma, Arial, Helvetica, sans-serif; color: #333333; font-size:13px; line-height:18px; margin:10px; padding: 0px;
 +
## p tag according to column
 +
temp.tt_content.ptext< tt_content.text.20
 +
tt_content.text.20 >
 +
tt_content.text.20 = CASE
 +
tt_content.text.20 {
 +
  key.field=colPos
 +
  ## column for content
 +
  0 < temp.tt_content.ptext
 +
  0.parseFunc.nonTypoTagStdWrap.encapsLines.addAttributes.P.style= font-family: Tahoma, Arial, Helvetica, sans-serif; color: #333333; font-size:13px; line-height:18px; margin:10px; padding: 0px;
 +
 +
  ## column for footer
 +
  3 < temp.tt_content.ptext
 +
  3.parseFunc.nonTypoTagStdWrap.encapsLines.addAttributes.P.style= font-family: Tahoma, Arial, Helvetica, sans-serif; color: #333333; font-size:10px; line-height:15px; margin:0px; padding: 0px;
 +
 +
  default < temp.tt_content.ptext
 +
  default.parseFunc.nonTypoTagStdWrap.encapsLines.addAttributes.P.style= font-family: Tahoma, Arial, Helvetica, sans-serif; color: #333333; font-size:13px; line-height:18px; margin:10px; padding: 0px;
 +
}
 +
 +
######## css styled content ##########
 +
## no wrap around header
 +
tt_content.textpic.20.0.text.10.10.stdWrap.dataWrap = |
 +
tt_content.textpic.20.text.10.10.stdWrap.dataWrap = |
 +
tt_content.textpic.20.default.text.10.10.stdWrap.dataWrap = |
 +
tt_content.textpic.20.text.wrap >
 +
 +
## images
 +
tt_content.image.20.renderMethod = simple
 +
tt_content.image.20.rendering.simple.imageStdWrapNoWidth.wrap = |
 +
tt_content.image.20.rendering.simple.imageStdWrap.dataWrap = |
 +
tt_content.image.20.rendering.simple.caption.wrap = |
 +
tt_content.image.20.layout {
 +
default.value = <table cellspacing="0" cellpadding="0" style="width: 100%; text-align: left; margin: 0;"><tr><td valign="top" align="center" style="text-align: center;">###IMAGES###</td></tr><tr><td valign="top">###TEXT###</td></tr></table>
 +
26.value = <table cellspacing="10" cellpadding="0" style="width: 100%; text-align: left; margin: 0;"><tr><td valign="top">###IMAGES###</td><td valign="top">###TEXT###</td></tr></table>
 +
}
 +
 +
## default frame
 +
tt_content.stdWrap.innerWrap.cObject.0 = TEXT
 +
tt_content.stdWrap.innerWrap.cObject.0.value = <tr><td valign="top">|</td></tr>
 +
 +
## frame for highlighted content
 +
tt_content.stdWrap.innerWrap.cObject.30 = TEXT
 +
tt_content.stdWrap.innerWrap.cObject.30.value = <tr><td valign="top"><table width="600" border="0" cellspacing="0" cellpadding="0" style="border-left:10px solid #990000;"><tr><td valign="top">|</td></tr></table></td></tr><tr><td> </td></tr>
 +
 +
## left column box
 +
tt_content.stdWrap.innerWrap.cObject.40 = TEXT
 +
tt_content.stdWrap.innerWrap.cObject.40.value = <tr><td valign="top"><table width="600" cellspacing="10" cellpadding="0" border="0"><tr><td valign="top" style="background: #F6F6F6;border-top: 2px solid #C9C9C9;border-bottom: 2px solid #C9C9C9;width: 50%;">|</td>
 +
 +
##right column box
 +
tt_content.stdWrap.innerWrap.cObject.45 = TEXT
 +
tt_content.stdWrap.innerWrap.cObject.45.value = <td valign="top" style="background: #F6F6F6;border-top: 2px solid #C9C9C9;border-bottom: 2px solid #C9C9C9; width: 50%;">|</td></tr></table></td></tr><tr><td> </td></tr>
 +
 +
</pre>
 +
 +
HTML Template
 +
<pre>
 +
<table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#eeeeee" style="background: #eeeeee;">
 +
  <tr>
 +
      <td align="center">
 +
               
 +
<table width="620" border="0" cellspacing="0" cellpadding="10" style="width:620px;padding:10px;">
 +
            <tr>
 +
              <td align="center">
 +
        ###HEADERLINK###
 +
              </td>
 +
            </tr>
 +
        </table>
 +
       
 +
      <table width="600" cellspacing="0" cellpadding="0" border="0" bgcolor="#ffffff" style="background: #ffffff; border-bottom: 6px solid #ccc; width:600px;border-collapse: collapse;">
 +
        <tr>
 +
        <td align="left">
 +
        <table width="600" border="0" cellspacing="0" cellpadding="10" bgcolor="#000842" style="width:600px; padding: 10px; background-color: #000842;">
 +
            <tr>
 +
              <td align="center" valign="bottom" width="180" height="70" style="width:180px; height:70px;">
 +
###LOGO###
 +
              </td>
 +
              <td align="right" valign="bottom">
 +
###HEADERTEXT###
 +
              </td>
 +
            </tr>
 +
        </table>
 +
       
 +
        <table width="100%" border="0" cellspacing="0" cellpadding="0" style="width:100%;">
 +
        <tr>
 +
              <td>&nbsp;</td>
 +
                    </tr>
 +
            ###CONTENT###
 +
            <tr>
 +
              <td>&nbsp;</td>
 +
                    </tr>
 +
                    </table>
 +
       
 +
</td>
 +
</tr>
 +
</table>
 +
       
 +
        <table width="620" border="0" cellspacing="0" cellpadding="10" style="width:620px;padding:10px;">
 +
            <tr>
 +
              <td align="center">
 +
                ###FOOTER###
 +
              </td>
 +
            </tr>
 +
        </table>
 +
       
 +
      </td>
 +
  </tr>
 +
</table>
 +
</pre>
 +
 +
PageTS
 +
<pre></pre>
 +
 +
==== Template Enthält ====
 +
<pre>
 +
CSS Styled Content (css_styled_content)
 +
Direct Mail Content Boundaries (direct_mail)
 +
Direct Mail Plain text (direct_mail)
 +
Direct Mail News Plain text (direct_mail)
 +
</pre>
 
=== Extensions ===
 
=== Extensions ===
 
* tt_address  
 
* tt_address  
Zeile 44: Zeile 261:
 
* Template für PlainText (Type 99) nicht vergessen.  
 
* Template für PlainText (Type 99) nicht vergessen.  
 
-
 
-
 
  
 
== Empfängerliste ==
 
== Empfängerliste ==

Version vom 8. Juni 2013, 23:04 Uhr

Quickstart

Komplettes Beispiel

Quellen:

http://blog.undkonsorten.com/typo3-newsletter-direct-mail-subscription (2013)

http://jweiland.net (2013)

TypoScript

// Säuberung
plugin {
  tx_cssstyledcontent._CSS_DEFAULT_STYLE >
  # .... und weitere ....
}
page {
  stylesheet >
  headerData.10 >
  headerData.10 = FILE
  headerData.10 {
	file = {$stylesheet}
	wrap = 
  }
}
config.disableAllHeaderCode = 0


config.index_enable = 0
config.spamProtectEmailAddresses >
config.removeDefaultJS = 1
tx_directmail_pi1.10.template.file = fileadmin/templates/nl/nl-text.html
tx_directmail_pi1.10.marks {
   HEADERTEXT = TEXT
   HEADERTEXT.data = field:title
   CONTENT < styles.content.get
   CONTENT.renderObj = < plugin.tx_directmail_pi1 
   FOOTER < styles.content.getBorder
   FOOTER.select.pidInList = 195
   FOOTER.renderObj = < plugin.tx_directmail_pi1
   FOOTER.wrap = ------------------------------------ |
}
page >
page = PAGE
page {
  headerData.10= TEXT
  headerData.10.value (
     <style type="text/css">
      <!--
      @charset "utf-8";
      * { margin:0px; padding:0px; }
      img, a img {border:0;}
      -->
      </style>
   )
   bodyTag = <body marginheight="0" topmargin="0" marginwidth="0"  bgcolor="#eeeeee" leftmargin="0" style="margin: 0px; padding:0px; background-color: #eee; font-family:Tahoma, Verdana, Arial, sans-serif; font-size:13px; line-height:19px; color:#333333;">
   10 = TEMPLATE
   10.template = FILE
   10.template.file = fileadmin/templates/nl/nl-html.html
   10.marks {
      HEADERLINK = TEXT
      HEADERLINK {
      value=  klicken Sie hier 
         typolink.parameter.data = page:uid
         typolink.ATagParams = style="color:#2131AD;"
         typolink.extTarget = _blank
         typolink.target = _blank
         wrap = <p style="font-size: 11px; line-height: 15px; font-family: Tahoma, Arial, Helvetica, sans_serif; color: #333; margin: 0px;">Probleme bei der Darstellung des Newsletters? Dann | für die Webansicht</p>
      }
         
      LOGO = IMAGE
      LOGO.file = fileadmin/.../logo.gif
         
      HEADERTEXT = TEXT
      HEADERTEXT.data = field:subtitle //field:title
      HEADERTEXT.wrap =<h1 style="font-size: 16px; line-height: 18px;font-family: Tahoma, Arial, Helvetica, sans_serif; color: #ffffff; margin: 0px;font-weight: normal;">|</h1>
 
      CONTENT < styles.content.get
          ## footer in border to be able to define different tags per column
      FOOTER < styles.content.getBorder
      FOOTER.select.pidInList = 3
   }
} 

## output headers
lib.stdheader.stdWrap.dataWrap = |
lib.stdheader.10 {
   1.dataWrap = <h1 style="padding:0; margin:0px 10px 10px 10px; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size:25px; font-weight:normal; line-height:33px; color:#4E4E4E;">|</h1>
   2.dataWrap = <h2 style="padding:0; margin:0px 10px 10px 10px; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size:18px; font-weight:normal; line-height:24px; color:#4E4E4E;">|</h2>
   3.dataWrap = <h3 style="padding:0; margin:10px; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size:13px; font-weight:bold; line-height:17px; color:#4E4E4E;">|</h3>
   4.dataWrap = <h4 style="padding:0; margin:10px; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size:13px; font-weight:bold; line-height:17px; color:#333333;">|</h4>
     ## extra h2 version
   5.dataWrap = <h2 style="padding:0; margin:10px; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size:18px; font-weight:normal; line-height:24px; color:#990000"">|</h2>
} 
## style for a tag
lib.parseFunc_RTE.tags.link.typolink.ATagParams = style="color:#2131AD; text-decoration:none; border:0px;" 
## no class for p tag
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.P.class >
 
## p tag for all columns
#lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.P.style = font-family: Tahoma, Arial, Helvetica, sans-serif; color: #333333; font-size:13px; line-height:18px; margin:10px; padding: 0px;
## p tag according to column
temp.tt_content.ptext< tt_content.text.20
tt_content.text.20 >
tt_content.text.20 = CASE
tt_content.text.20 {
  key.field=colPos
   ## column for content
   0 < temp.tt_content.ptext
   0.parseFunc.nonTypoTagStdWrap.encapsLines.addAttributes.P.style= font-family: Tahoma, Arial, Helvetica, sans-serif; color: #333333; font-size:13px; line-height:18px; margin:10px; padding: 0px;
 
   ## column for footer
   3 < temp.tt_content.ptext
   3.parseFunc.nonTypoTagStdWrap.encapsLines.addAttributes.P.style= font-family: Tahoma, Arial, Helvetica, sans-serif; color: #333333; font-size:10px; line-height:15px; margin:0px; padding: 0px;
 
   default < temp.tt_content.ptext
   default.parseFunc.nonTypoTagStdWrap.encapsLines.addAttributes.P.style= font-family: Tahoma, Arial, Helvetica, sans-serif; color: #333333; font-size:13px; line-height:18px; margin:10px; padding: 0px;
}
 
######## css styled content ##########
## no wrap around header
tt_content.textpic.20.0.text.10.10.stdWrap.dataWrap = |
tt_content.textpic.20.text.10.10.stdWrap.dataWrap = |
tt_content.textpic.20.default.text.10.10.stdWrap.dataWrap = |
tt_content.textpic.20.text.wrap >
 
## images
tt_content.image.20.renderMethod = simple
tt_content.image.20.rendering.simple.imageStdWrapNoWidth.wrap = |
tt_content.image.20.rendering.simple.imageStdWrap.dataWrap = |
tt_content.image.20.rendering.simple.caption.wrap = |
tt_content.image.20.layout {
 default.value = <table cellspacing="0" cellpadding="0" style="width: 100%; text-align: left; margin: 0;"><tr><td valign="top" align="center" style="text-align: center;">###IMAGES###</td></tr><tr><td valign="top">###TEXT###</td></tr></table>
 26.value = <table cellspacing="10" cellpadding="0" style="width: 100%; text-align: left; margin: 0;"><tr><td valign="top">###IMAGES###</td><td valign="top">###TEXT###</td></tr></table>
}
 
## default frame
tt_content.stdWrap.innerWrap.cObject.0 = TEXT
tt_content.stdWrap.innerWrap.cObject.0.value = <tr><td valign="top">|</td></tr>
 
## frame for highlighted content
tt_content.stdWrap.innerWrap.cObject.30 = TEXT
tt_content.stdWrap.innerWrap.cObject.30.value = <tr><td valign="top"><table width="600" border="0" cellspacing="0" cellpadding="0" style="border-left:10px solid #990000;"><tr><td valign="top">|</td></tr></table></td></tr><tr><td> </td></tr>
 
## left column box
tt_content.stdWrap.innerWrap.cObject.40 = TEXT
tt_content.stdWrap.innerWrap.cObject.40.value = <tr><td valign="top"><table width="600" cellspacing="10" cellpadding="0" border="0"><tr><td valign="top" style="background: #F6F6F6;border-top: 2px solid #C9C9C9;border-bottom: 2px solid #C9C9C9;width: 50%;">|</td>
 
##right column box
tt_content.stdWrap.innerWrap.cObject.45 = TEXT
tt_content.stdWrap.innerWrap.cObject.45.value = <td valign="top" style="background: #F6F6F6;border-top: 2px solid #C9C9C9;border-bottom: 2px solid #C9C9C9; width: 50%;">|</td></tr></table></td></tr><tr><td> </td></tr>

HTML Template

<table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#eeeeee" style="background: #eeeeee;">
   <tr>
      <td align="center">
                
		<table width="620" border="0" cellspacing="0" cellpadding="10" style="width:620px;padding:10px;">
            		<tr>
               			<td align="center">
         			###HEADERLINK###
               			</td>
            		</tr>
         	</table>
        
       		<table width="600" cellspacing="0" cellpadding="0" border="0" bgcolor="#ffffff" style="background: #ffffff; border-bottom: 6px solid #ccc; width:600px;border-collapse: collapse;">
         		<tr>
         			<td align="left">
         				<table width="600" border="0" cellspacing="0" cellpadding="10" bgcolor="#000842" style="width:600px; padding: 10px; background-color: #000842;">
            				<tr>
               					<td align="center" valign="bottom" width="180" height="70" style="width:180px; height:70px;">
									###LOGO###
               					</td>
               					<td align="right" valign="bottom">
				 					###HEADERTEXT###
               					</td>
            				</tr>
         				</table>
         				
         				<table width="100%" border="0" cellspacing="0" cellpadding="0" style="width:100%;">
         					<tr>
               					<td> </td>
            				         </tr>
            					###CONTENT###
            					<tr>
               					<td> </td>
            				         </tr>
            			        </table>
         				
					</td>
				</tr>
			</table>
         
         	<table width="620" border="0" cellspacing="0" cellpadding="10" style="width:620px;padding:10px;">
            		<tr>
               			<td align="center">
                			###FOOTER###
               			</td>
            		</tr>
         	</table>
         
      </td>
   </tr>
</table>

PageTS


Template Enthält

CSS Styled Content (css_styled_content)
Direct Mail Content Boundaries (direct_mail)
Direct Mail Plain text (direct_mail)
Direct Mail News Plain text (direct_mail)

Extensions

  • tt_address
  • direct_mail (Newsletterversand)
  • sr_feuser_register oder direct_mail_subscriptionoder oder sr_email_subscribe o.ä. (Frontend User Anmeldung)
  • für sr_feuser_register werden weitere extensions benötigt (siehe Typo3 - Benutzer Registrierung (sr_feuser_register))

Ordner

Für sr_feuser_subscribe kann bei neueren Versionen das meiste im default mode gemacht werden, einige Seiten bieten sich denoch an, weil man auch schöne Infotexte mit reinbauen kann.

  • Newsletter/ (sr_feuser_register_pi in default mode, Login)
    • Registrierung/ (sr_feuser_register in register Mode), hide at login, hide in menu
    • Registrierung bestätigt/ (sr_feuser_register in default oder setfixed mode) hide in menu
    • Benutzerdaten bearbeiten/ (sr_feuser_register in edit oder default mode) hide in Menu, access alle oder bestimmte Benutzer.

Für direct_mail

  • Newsletter/

Seiteneigenschaften enthält Plugin direct_mail, Neues Root-Template auf Newsletter (alles clearen) includes: content(default), plugin.alt.plaintext(99) und css_styled_content. (Update es gibt auch direct mail plaintext und direct mail news plaintext)

    • Abonnements/ (enthält die Benutzer)

User Registrierung

direct_mail kann seine Adressen aus verschiedenen Datenquellen beziehen. Oft nimmt man dazu die fe_user oder tt_address

Bei Verwendung von direct_mail_subscription

  • Konstanten anpassen (Constants Editor) für direct_mail_subscription (Admin Email, Name und Record PID auf Abonnement Ordner setzen)
  • Anmelde Template nach fileadmin und anpassen

todo

bei sr_feuser_register

Ist meiner Ansicht nach das bessere Tool um Benutzer (wofür auch immer) über das Frontend zu registrieren.

Beachten:

  • Kategorie für dmail muß gesetzt sein sonst wird später nichts versandt. (Geht evtl auch als verstecktes Feld?
  • Todo: Testen ob nicht Abo nutzer auch Mails kriegen.

Weitere Infos dazu:

Typo3 - Benutzer Registrierung (sr_feuser_register)

bei sr_email_subscribe

Todo

direct_mail

  • Versendet Direktmails, oder Seiten (extern intern)
  • Kategorien werden Content Elementen zugeordnet, der User bekommt (bei Wahlmöglichkeit) nur die, die er ausgewählt hat.
  • Template für PlainText (Type 99) nicht vergessen.

-

Empfängerliste

Modul Recipients List


Versand

In Modul Direct Mail wechseln

1. Newsletter auswählen

Es gibt 4 Arten von Quellen die als Newsletter verwendet werden können.

  1. Internal Pages - Nimmt Seiten die im Newsletter Ordner angelegt sind. Klick auf Titel oder das Newsletter erstellen Symbol führ zu Schritt 2
  2. External Pages - Selbsterklärend, Klick auf Create Newsletter führt zu Schritt 2
  3. Quickmail - Ein Text kann in einem Formular eingetippt und Versandt werden
  4. Direct Mail - hier landen alle Newsletter die aus obigen Punkten angelegt, aber noch nicht zum Versand gegeben wurden.

2. Übersicht - Anpassungen

  • Detailinfos werden angezeigt und können noch einmal verändert werden. Auch Attachements können angehängt werden.
  • Der Content der Mail wird eingelesen und es wird eine Erfolgs, oder Fehlermeldung angezeigt. Im Fehlerfall Assistent verlassen, Fehler korrigieren, Frontendcache löschen, zurück zum Assistenten. Die Mail sitzt dann in Punkt 4.

3. Kategorien auswählen

Dieser Punkt wird nur für Newsletter angezeigt, die aus Typo3 Seiten erstellt werden. Hier kann man den einzelnen Inhaltselementen Kategorien zuordnen. Die Benutzer bekommen nur die Kategorien die sie ausgewählt haben. Kategorien müssen vorher angelegt werden, damit Sie zur Verfügung stehen.

4. Testmail

Hier kann eine Testmail versendet werden. Wenn im Configuration Modul im letzten Punkt uids für User gesetzt wurden, können diese hier auch direkt als Empfänger ausgewählt werden.

5. Zum Versenden freigeben

  • Empfängerliste auswählen
  • Datum zum Versand

Der Newsletter liegt jetzt zum Versenden vor. Wenn kein Cronjob eingerichtet, der die Mailerengine anstößt, kann man die Engine unter Mailer Engine Status von Hand anschubsen.

Cronjob und Mailerengine

Scheduler

Alle Extensions können einen Scheduler Task einrichten. D.h. man muß auf dem Server nur noch einen Cronjob anlegen nämlich den Scheduler. Und der Rest kann im TYPO3 Scheduler eingerichtet werden. Damit sind die unteren Dinge wie Command Line Interface nur noch für lowlevel Aufgaben (Wartung von TYPO3 etc. notwendig.)

Cronjob für Scheduler einrichten

http://wiki.zone30.info/wikizone/index.php/TYPO3_-_Scheduler

Der Crontask

Es gibt meherer Möglichkeiten. Empfohlen ist der Versand über das Command Line Interface (cli)


Old School

When installed as local extension (default):

*/5 * * * * /home/....../public_html/typo3conf/ext/direct_mail/res/scripts/dmailerd.phpcron> /dev/null
  1.
     when installed as global extension:
*/5 * * * * /home/....../public_html/typo3/ext/direct_mail/res/scripts/dmailerd.phpcron> /dev/null

dmailerd.phpcron requires the availability of a PHP binary, "/usr/bin/php”. Depending on your server configuration, you may have to edit the first line of the script to refer to the location of the PHP binary.

cli

BE-user with the name of “_cli_direct_mail”

*/5 * * * * /ABS/PATH/TO/SITE/typo3/cli_dispatch.phpsh direct_mail masssend

This will call the CLI-script with two parameters: the extension's key (direct_mail) and a task (masssend).

Einstellunge im Extension Manager

Die wichtigsten sind:

  • sendPerCycle - Anzahl der auf einmal versendeten Mails (default 50)
  • adminEmail - Administrator Email bei Fehlern. Especially to notify administrator of the site if the table can't be written (Direct Mail creates a lot of log records while sending the email).
  • Interval of the cronjob: Time interval of the cron task you set in minute. This is used to control if the cron task is still running or if there is an error while sending the email.
  • Enable notification email: Allow Direct Mail to send notification emails about start and end of mailing job.
  • Enable Sending through SMTP: Send all emails not through sendmail but through an external SMTP account (requires PEAR::Mail to be installed on the system)

Backend Anpassen

Über UserTS kann man z.B. nicht benötigte Optionen für die User ausblenden (siehe Doku)

Plain Text und HTML Mail

Vor Version 2.0: static Template plugin.alt.plaintext (99) für Plain Text (funktioniert auch weiterhin). Alternativ gibt es ab 2.0 das static Template: Direct Mail Plain Text

Kategorien

Vor der Benutzung benötigt man das Static Template: Direct Mail Content Boundaries Weitere Infos in der Doku

Klick Statistik

Statistische Auswertungen gehen, wenn man Use Jump Urls benutzt, da diese in der Datenbank registriert werden.

clear-gif image in your HTML template and put the parameter dmailerping=”1” in the tag. This will force the capture function to set the url of this image absolute through the jumpurl registration. This means in other words that when this mail is opened it will be registered. This is an additional feature to the regular feature which registers all links clicked in the mail.

<img src="typo3conf/ext/direct_mail/res/gfx/dmailerping.gif" width="1" height="1" dmailerping="1" />

Vorsicht wg. Spamverdacht

Muster

Seitenbaum für Registrierung (sr_feuser_register)

- Newsletter 
 |
 |- Registrierung 
 |- Benutzerdaten bearbeiten
 |- Registrierung bestätigt
 |- Freunde einladen

Seitenbaum für Newsletter (direct_mail)
- Newsletter (Kategorien)
 |- Abonnenten
 |- Newsletter Seiten...

TypoScript Registrierung (sr_feuser_register)

Constants

// Ordner mit Benutzern für Loginform
styles.content.loginform.pid = 87
// bei alter newloginbox...
# plugin.tx_newloginbox_pi1.storagePid = 87


plugin.tx_srfeuserregister_pi1{
  // Seite mit den Benutzern
  pid = 87
  // Benutzergruppen uid nach Registrierung aber vor Bestätigung (z.B. "NL nicht bestätigt")
  userGroupUponRegistration = 1
  // Benutzergruppen uid nach Bestätigung (z.B. "NL bestätigt")
  userGroupAfterConfirmation = 2
  // Seite mit Login Form
  loginPID = 88
  // Seite mit Registierung
  registerPID = 89
  // Seite zum editieren der Benutzerdaten
  editPID = 90
  // Seite mit Bestätigung der Registrierung
  confirmPID = 91
  // Wieviel Bilder dürfen hochgeladen werden
  maxImages = 1
  dateFormat = d.m.Y
  dateSplit = .
  salutation = informal
  siteName = KO rockt!  
  formFields = password,first_name, last_name, email,module_sys_dmail_html, module_sys_dmail_category,disable
  requiredFields = first_name,last_name,email
  email = steff@ko-rockband.de
  // nur mit RealURL ?
  useShortUrls = 1
  // Kategorien von Direct Mail
  module_sys_dmail_category_PIDLIST = 86
  //
  dmailCheckedUponRegistration = 1
}

Setup

// Sprachlabel anpassen
plugin.tx_srfeuserregister_pi1._LOCAL_LANG.de{
  v_really_wish_to_delete_informal = Willst Du Dein Konto wirklich löschen?
  v_your_account_was_created_informal = Dein Konto <strong>%2$s</strong> wurde erstellt. Wir senden eine E-Mail an die Adresse <strong>%4$s</strong>, damit Du die Anmeldung bestätigen kannst.
}
// Titel der Benutzerseite überschreiben (wird in E-Mails benutzt)
plugin.tx_srfeuserregister_pi1.pidTitleOverride = KO rockt! Newsletter
plugin.tx_srfeuserregister_pi1._LOCAL_LANG.de.username = E-Mail Adresse
plugin.tx_srfeuserregister_pi1._LOCAL_LANG.de.v_your_account_was_created = Hallo %3$s, du hast eben unseren kostenlosen Newsletter bestellt. Um den Missbrauch Ihrer Adresse durch Dritte zu vermeiden, bitten wir Dich daher, das Newsletter-Abonnement zu bestätigen. Dazu haben wir dir eine E-Mail an die Adresse %2$s geschickt. In dieser Mail befindet sich ein Link zum Bestätigen der Anmeldung. <br />
plugin.tx_srfeuserregister_pi1._LOCAL_LANG.de.v_follow_instructions1 =
#plugin.tx_directmail_pi1.10.template.file = fileademin/templates/ext/newsletter-textversion.tmpl
/*
plugin.tx_directmail_pi1.10 {
marks.RCONTENT < styles.content.getRight
marks.RCONTENT.renderObj = < plugin.tx_directmail_pi1
}

lib.alt_plaintext.renderObj.siteUrl = http://www.ko-rockband.de/
tx_directmail_pi1.10.marks.RCONTENT < tx_directmail_pi1.10.marks.CONTENT
tx_directmail_pi1.10.marks.RCONTENT.select.where = colPos=2
*/

#plugin.tx_srfeuserregister_pi1.salutation = informal

TypoScript Newsletter (direct_mail)

Versand durch User ohne Admin Rechte

Wenn nicht nur der Admin Newsletter versenden soll, dannn sollten folgende Rechte gesetzt sein: Ich habe für UserInnen, die Newsletter verschicken können sollen, eine eigene Gruppe erstellt, mit folgenden Berechtigungen: Option "Zugriffslisten mit einschließen" gesetzt. Module: Direct Mail und alle Unterpunkte Tabellen (anzeigen): Direct-Mails und Empfängerliste Tabellen (ändern): Direct-Mails und Empfängerliste Erlaubte Ausschlussfelder ("allow excludefields"icon_wink.gif: Alle mit "Direct Mail" davor (ob das wirklich nötig ist, weiß ich nicht).

Quelle: http://www.typo3.net/forum/list/list_post//72288/

Mehrsprachiger Newsletter

Konfiguration für sr_feuserregister

Sprachen für den Newsletter

z.B. über separate Sysordner für jede Sprache z.B. über Kategorien


Versand

Korrekte Konfiguration notwendig, damit die Links in der Mail den L Parameter mitliefern Zitat aus dem typo3.net Forum: Da kann ich glaub ich helfen. Ist eigentlich ganz einfach, bin aber auch nach langem Pröbeln drauf gekommen:

Beim Direct Mail Modul auf "Konfiguration" gehen. Dort solltest du, wenn du es gleich wie ich gemacht hast, für jede Sprache einen Ordner haben. Wähl den Ordner mit der 2. Sprache (z.B. Französisch).

Dann beim 3. Konfigurationspunkt "SETZE STANDARDWERTE FüR DAS AUSLESEN DER E-MAIL-INHALTE:"

bei "Parameter, HTML": den Sprachparameter einsetzen, z.B. &L=1

Damit wird den Links am Ende der Parameter angesetzt, und die Links zeigen auf die richtige Sprache.

Hoffe, ich konnte helfen, und dass es bei dir klappt.

weiteres Tutorial

Basiert auf:

Tutorials und Artikel  / Typo3  / Einrichtung eines Newsletters mit Direct Mail

Einrichtung eines Newsletters mit Direct Mail

Um einen Newsletter mit Direct mail unter Typo3 4.0 einzurichten, bedarf es nur wenige Schritte. In diesem Tutorial möchte ich die Vorgehensweise beschreiben, auf Sonderfälle gehe ich nicht ein, es sollte jedem möglich sein, anhand der Beschreibung einen solchen Newsletter auf den eigenen Seiten einzubinden. Benötigte Extensions

Diese Extensions werden benötigt und sollten, wenn noch nicht vorhanden, über den Extension-manager installiert werden.

   * Address list (tt_address)
   * Direct Mail (direct_mail) 
   * Direct Mail Subscription (direct_mail_subscription) 

Vorbereitungen

Als erstes legen wir 2 Systemordner an, die sich auf der rootline befinden. Dadurch greift das Template der root-Seite nicht und wir sind unabhängig von dem Rest der Seite. In meinem Fall hat der Sysordner Newsletter die PID 147 und der Sysordner Abonnoments die PID 148. Wir bearbeiten die Seinteneigenschaften des Sysordners Newsletter und geben unter "Enthält Erweiterung" direct mail an.

Man kann die Ordner auch woanders hinlegen und das root-Template einfach mit einem neuen root Template überschreiben bzw dessen eigenschaften mit den clear Häkchen löschen.

Newsletter/
Abonnements/

Wir benötigen noch eine Seite, auf der die User sich für den Newsletter anmelden können. Hierzu erstellen wir in unserem Seitenbaum eine Seite und fügen auf ihr das Inhaltselement "Plugin / Direct Mail Anmeldung" ein. Als Ausgangspunkt wählen wir unseren Sysordner Abonnements, in dem die Anmeldungen gesammelt werden sollen. Template Anpassungen

Nun wollen wir unser root-Template vervollständigen. Hierzu legen wir auf unserem SysOrdner Newsletter ein neues Template an "Create template for a new site". Wir benennen es und binden folgende Module ein:

Das Modul content(default) und plugin.alt.plaintext(99) wird benötigt, um den Inhalt für die Plain Text-Emails zu generieren, für die HTML-Ausgabe nehmen wir wie gewohnt die css_styled_content.

Unserem root-Template müssen wir auch noch einige Angaben hinzufügen. Vorerst kopieren wir das Template für die Newsletteranmeldung (typo3conf/ext/direct_mail_subscription/pi/fe_admin_dmailsubscrip.tmpl) nach fileadmin/templates/newsletter_subscription.html, so das wir es später bearbeiten können.

Wir gehen auf unser root-Template und wählen im Constants-Editor die Seite PLUGIN.FEADMIN.DMAILSUBSCRIPTION und wählen die Einträge Administration email, Administration name und Record PID. Wir ergänzen die email-Angaben und unter Record PID geben wir unseren SysOrdner Abonnoments an (in meinem Fall 148) - hierdurch werden die Anmeldungen auch in diesem SysOrdner gespeichert.

Anschliessend öffnen wir Constants unter Info/Modify und ergänzen die Angabe unseres Templatefiles:

plugin.feadmin.dmailsubscription.file.templateFile = fileadmin/templates/newsletter_subscription.html

In diesem Zuge können wir auch das Template in einem Editor bearbeiten und entsprechend anpassen.

Wir sind nun mit den Vorbereitungen fertig und melden uns probeweiser beim Newsletter an. Es müsste ein neuer Datensatz im SysOrdner Abonnoments gelandet sein, der versteckt ist - wenn wir unsere Email erhalten haben und auf den Aktivierungslink geklickt haben, so wird der Datensatz sichtbar. Newsletter einrichten

Nun wollen wir unseren ersten Newsletter einrichten. Die Newsletter sind ganz normale Typo3-Seiten, die in unserem SysOrdner Newsletter landen. Hier brauchen wir noch ein paar ergänzende Angaben in unserem Template des SysOrdners Newsletter, damit auch die Inhalte angezeigt werden.

In diesem Fall nehmen wir ein einfaches Typoscript-Template, hier kann jeder natürlich die Ausgabe so stylen, wie er gerne möchte. In diesem Beispiel sieht das Template so aus: TypoScript

page = PAGE

page.headerData.10=TEXT
page.headerData.10.value (
style type=text/css
* {margin:0;padding:0;}
body {background: #eee;}
div#main {padding:12px;}
/style
)
page.bodyTag=body
page.10  styles.content.get - ERROR: Line 12: Object Name String, "page.10" was not preceded by any operator, =<>({
page.10.wrap = divimg src=fileadmin/images/newsletterheader.gif/divdiv id=main|/div

Nachdem wir das Template gespeichert haben, klicken wir unter Web auf den Direct Mail-Link. Wir sehen unseren SysOrdner Newsletter, den wir anklicken. Dann klicken wir auf den Link "Klicken Sie hier, um eine neue Typo3-Seite, die Sie später als Newsletter verschicken können, anzulegen. ". Wir benennen die Seite und speichern sie. Nun legen wir noch ein bischen Inhalt auf der Seite an und lassen sie anzeigen, um unser Template zu überprüfen. Wenn alles glatt gelaufen ist, sehen wir unseren ersten Newsletter.

Nun können wir unseren Newsletter versenden. Wir wählen wieder Web>Direct Mail. Unter Modulkonfiguration ändern wir noch die Einstellungen wie gewünscht. Wir erstellen unter Empfängerliste eine neue Versandgruppe. Unter Tabellen klicken wir Adresse an, da wir ja tt_address für unsere Adressen benutzen. Wir sehen, das es da noch weitere Optionen gibt.

Nun erstellen wir unseren Newsletter anhand unserer Seite. Wir haben nun viele Optionen zum versenden, wir können ihn zuerst als Testmail an uns selbst verschicken, um alles zu überprüfen. Wir sollten uns mit den einzelnen Menüpunkten von DirectMail vertraut machen, es ist alles gut erklärt und somit verständlich.

Unserem Newsletter steht nun nichts mehr im Weg, viel Spass! Bugfix

Bei einigen Konfigurationen ergibt sich ein Problem mit den Plain Text - Mails. Hier wird als Content nur eine 1 erzeugt, und der Plain-Letter wird erst richtig erzeugt, wenn man den FE-Cache löscht. Sollte dieses Problem auftauchen, so kann man den Code von direct mail modifizieren, um das Verhalten zu ändern. Folgende Zeile muss in der Datei direct_mail/mod/class.web_mod_dmail.php auskommentiert werden (Zeile 3916): PHP

// $this-tmpl-forceTemplateParsing = 1; 


Quelle: sk-typo3 · Steffen Kamper · 2006 last Update:Wednesday, 22.07.2009