Newsletter mit Direct Mail: Unterschied zwischen den Versionen
| (18 dazwischenliegende Versionen von 8 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| + | == 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= 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> | ||
| + | |||
| + | </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> </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> | ||
| + | </pre> | ||
| + | |||
| + | PageTS | ||
| + | <pre> | ||
| + | |||
| + | mod.web_modules.dmail.from_email=news@korockt.de | ||
| + | mod.web_modules.dmail.from_name=KO Newsletter | ||
| + | mod.web_modules.dmail.replyto_email=info@korockt.de | ||
| + | mod.web_modules.dmail.replyto_name=KO | ||
| + | mod.web_modules.dmail.return_path=info@korockt.de | ||
| + | mod.web_modules.dmail.organisation=KO rockt! | ||
| + | mod.web_modules.dmail.priority=3 | ||
| + | mod.web_modules.dmail.sendOptions=3 | ||
| + | mod.web_modules.dmail.includeMedia=0 | ||
| + | mod.web_modules.dmail.flowedFormat=0 | ||
| + | mod.web_modules.dmail.plainParams=&type=99 | ||
| + | mod.web_modules.dmail.use_domain=0 | ||
| + | mod.web_modules.dmail.quick_mail_encoding=quoted-printable | ||
| + | mod.web_modules.dmail.direct_mail_encoding=quoted-printable | ||
| + | mod.web_modules.dmail.quick_mail_charset=utf-8 | ||
| + | mod.web_modules.dmail.direct_mail_charset=utf-8 | ||
| + | mod.web_modules.dmail.use_rdct=0 | ||
| + | mod.web_modules.dmail.long_link_mode=0 | ||
| + | mod.web_modules.dmail.enable_jump_url=0 | ||
| + | mod.web_modules.dmail.enable_mailto_jump_url=0 | ||
| + | |||
| + | ########### Newsletter adjustments ############## | ||
| + | |||
| + | ## remove not needed image orientations | ||
| + | TCEFORM.tt_content.imageorient.removeItems = 1,2,8,9,10,17,18,25 | ||
| + | TCEFORM.tt_content.imageorient.disableNoMatchingValueElement = 1 | ||
| + | ## frames for special layouts | ||
| + | TCEFORM.tt_content.section_frame.removeItems= 1,5,6,10,11,12,20,21,66 | ||
| + | TCEFORM.tt_content.section_frame.addItems.30 = Highlighted Content | ||
| + | TCEFORM.tt_content.section_frame.addItems.40 = Left Box | ||
| + | TCEFORM.tt_content.section_frame.addItems.45 = Right Box | ||
| + | |||
| + | ## define visible columns | ||
| + | mod.SHARED.colPos_list = 0 | ||
| + | ## columns removed in pagecontent selection box | ||
| + | TCEFORM.tt_content.colPos.removeItems = 1,2 | ||
| + | |||
| + | ## remove content types | ||
| + | TCEFORM.tt_content.CType.removeItems = header,bullets,table,uploads,multimedia,swfobject,qtobject,media,mailform,search,login,menu,shortcut,list,script,div,splash,powermail_pi1 | ||
| + | </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 === | ||
| + | * 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. | ||
| + | # Internal Pages - Nimmt Seiten die im Newsletter Ordner angelegt sind. Klick auf Titel oder das Newsletter erstellen Symbol führ zu Schritt 2 | ||
| + | # External Pages - Selbsterklärend, Klick auf Create Newsletter führt zu Schritt 2 | ||
| + | # Quickmail - Ein Text kann in einem Formular eingetippt und Versandt werden | ||
| + | # 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) | ||
| + | <pre> | ||
| + | - Newsletter | ||
| + | | | ||
| + | |- Registrierung | ||
| + | |- Benutzerdaten bearbeiten | ||
| + | |- Registrierung bestätigt | ||
| + | |- Freunde einladen | ||
| + | |||
| + | Seitenbaum für Newsletter (direct_mail) | ||
| + | - Newsletter (Kategorien) | ||
| + | |- Abonnenten | ||
| + | |- Newsletter Seiten... | ||
| + | </pre> | ||
| + | |||
| + | TypoScript Registrierung (sr_feuser_register) | ||
| + | |||
| + | Constants | ||
| + | <pre> | ||
| + | // 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 | ||
| + | } | ||
| + | </pre> | ||
| + | |||
| + | Setup | ||
| + | <pre> | ||
| + | // 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 | ||
| + | </pre> | ||
| + | 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 | Tutorials und Artikel / Typo3 / Einrichtung eines Newsletters mit Direct Mail | ||
Einrichtung eines Newsletters mit Direct Mail | Einrichtung eines Newsletters mit Direct Mail | ||
| Zeile 8: | Zeile 529: | ||
* Address list (tt_address) | * Address list (tt_address) | ||
| − | * Direct Mail (direct_mail) | + | * Direct Mail (direct_mail) |
| − | * Direct Mail Subscription (direct_mail_subscription) | + | * 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 | + | 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 | Template Anpassungen | ||
Aktuelle Version vom 8. Juni 2013, 23:05 Uhr
Quickstart[Bearbeiten]
Komplettes Beispiel[Bearbeiten]
Quellen:
http://blog.undkonsorten.com/typo3-newsletter-direct-mail-subscription (2013)
http://jweiland.net (2013)
TypoScript[Bearbeiten]
// 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
mod.web_modules.dmail.from_email=news@korockt.de mod.web_modules.dmail.from_name=KO Newsletter mod.web_modules.dmail.replyto_email=info@korockt.de mod.web_modules.dmail.replyto_name=KO mod.web_modules.dmail.return_path=info@korockt.de mod.web_modules.dmail.organisation=KO rockt! mod.web_modules.dmail.priority=3 mod.web_modules.dmail.sendOptions=3 mod.web_modules.dmail.includeMedia=0 mod.web_modules.dmail.flowedFormat=0 mod.web_modules.dmail.plainParams=&type=99 mod.web_modules.dmail.use_domain=0 mod.web_modules.dmail.quick_mail_encoding=quoted-printable mod.web_modules.dmail.direct_mail_encoding=quoted-printable mod.web_modules.dmail.quick_mail_charset=utf-8 mod.web_modules.dmail.direct_mail_charset=utf-8 mod.web_modules.dmail.use_rdct=0 mod.web_modules.dmail.long_link_mode=0 mod.web_modules.dmail.enable_jump_url=0 mod.web_modules.dmail.enable_mailto_jump_url=0 ########### Newsletter adjustments ############## ## remove not needed image orientations TCEFORM.tt_content.imageorient.removeItems = 1,2,8,9,10,17,18,25 TCEFORM.tt_content.imageorient.disableNoMatchingValueElement = 1 ## frames for special layouts TCEFORM.tt_content.section_frame.removeItems= 1,5,6,10,11,12,20,21,66 TCEFORM.tt_content.section_frame.addItems.30 = Highlighted Content TCEFORM.tt_content.section_frame.addItems.40 = Left Box TCEFORM.tt_content.section_frame.addItems.45 = Right Box ## define visible columns mod.SHARED.colPos_list = 0 ## columns removed in pagecontent selection box TCEFORM.tt_content.colPos.removeItems = 1,2 ## remove content types TCEFORM.tt_content.CType.removeItems = header,bullets,table,uploads,multimedia,swfobject,qtobject,media,mailform,search,login,menu,shortcut,list,script,div,splash,powermail_pi1
Template Enthält[Bearbeiten]
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[Bearbeiten]
- 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[Bearbeiten]
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[Bearbeiten]
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[Bearbeiten]
- 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[Bearbeiten]
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[Bearbeiten]
Todo
direct_mail[Bearbeiten]
- 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[Bearbeiten]
Modul Recipients List
Versand[Bearbeiten]
In Modul Direct Mail wechseln
1. Newsletter auswählen[Bearbeiten]
Es gibt 4 Arten von Quellen die als Newsletter verwendet werden können.
- Internal Pages - Nimmt Seiten die im Newsletter Ordner angelegt sind. Klick auf Titel oder das Newsletter erstellen Symbol führ zu Schritt 2
- External Pages - Selbsterklärend, Klick auf Create Newsletter führt zu Schritt 2
- Quickmail - Ein Text kann in einem Formular eingetippt und Versandt werden
- Direct Mail - hier landen alle Newsletter die aus obigen Punkten angelegt, aber noch nicht zum Versand gegeben wurden.
2. Übersicht - Anpassungen[Bearbeiten]
- 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[Bearbeiten]
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[Bearbeiten]
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[Bearbeiten]
- 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[Bearbeiten]
Scheduler[Bearbeiten]
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[Bearbeiten]
http://wiki.zone30.info/wikizone/index.php/TYPO3_-_Scheduler
Der Crontask[Bearbeiten]
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[Bearbeiten]
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[Bearbeiten]
Über UserTS kann man z.B. nicht benötigte Optionen für die User ausblenden (siehe Doku)
Plain Text und HTML Mail[Bearbeiten]
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[Bearbeiten]
Vor der Benutzung benötigt man das Static Template: Direct Mail Content Boundaries Weitere Infos in der Doku
Klick Statistik[Bearbeiten]
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[Bearbeiten]
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[Bearbeiten]
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[Bearbeiten]
Konfiguration für sr_feuserregister[Bearbeiten]
Sprachen für den Newsletter[Bearbeiten]
z.B. über separate Sysordner für jede Sprache z.B. über Kategorien
Versand[Bearbeiten]
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[Bearbeiten]
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