Zum Inhalt springen

Das Problem mit den HTML-Mails

Erstellt am 24. Januar 2006 · 19 Antworten · letzte Antwort am 27. Januar 2006

Tags: Frage

dfluess ·

Hallo Leute,

vorweg, ich habe leider auch keine Lösung für das Problem, wenn überhaupt keine HTML-Newsletter beim Empfänger ankommen, obwohl diese als "versendet" deklariert sind.

Bei mir funktioniert es soweit aber..

Diese HTML-Newsletter kommen nur sporadisch an! Noch verwirrender nicht war??

Ich habe in der tt_address viele Einträge, für diese natürlich das HTML-Flag gesetzt und die richtige Kategorie eingestellt wurde. Dennoch kamen einige an und andere nicht. Gut, dachte ich, wird wohl ein Problem beim Mailserver des Empfängers sein aber weit gefehlt, denn immer wieder bekam ich beschwerden, der Newsletter sei ausgeblieben.

Ich habe also zur Sicherheit einen Test gemacht und mir eine eigene Gruppe mit 4 eigenen E-Mailadressen angelegt, die alle samt in mein Postfach laufen. Alle haben das HTML-Flag und sind derselben Kategorie zugeordnet.

Nun habe ich einen HTML-Newsletter generiert und was passiert? Es kommen manchmal 2, manchmal 3 Mails und manchmal sogar nur 1 Mail an!! Meistens sind es aber 2 von 4 Newsletter die im Postfach landen! Was ist da Los??

Ich habe dann versuch ein wenig über das Problem zu finden und bin auf folgenden Satz gestoßen:

"May be scheduled before the previous cycle has completed. The process will not work correctly when there is parallel execution of the script. Processing of html mails is probably slower."

Es soll also daran liegen, dass HTML-Mails länger in der Abarbeitung brauchen?!

Diese Erkenntnis stammt von Stanislas Rolland, ein Programmierer der bereits mehrere Extensions ins Netz gestellt hat. Leider konnte er (aus Zeitmangel) keine Lösung geben.

Also liebe Leute, testet doch einmal, ob bei Euch wirklich(??) alle Newsletter den Empfänger erreichen?!

Wenn dies unterschiedlich ist, dann könnte es an unterschiedlichen Performanzen der Server liegen(??) Ist natürlich nur eine Vermutung aber das dürfte natürlich nicht sein und wäre somit ein Bug im core Script.

Vielleicht ist ja ein fähiger Programmierer her, der das Phänomen einmal unter die Lupe nehmen kann.

Ich bin gespannt, ob diese verflixte Kiste mit dem Newsletter in der 4.0 endlich Geschichte ist. Ziemlich frustrierend.

***
Abschließend vielleicht ein kleiner Tipp. Im EXTENSION REPOSITORY liegt eine Extension die unter anderem das Adressbuch und das TCA im BE erweitert. So kann man sehr leicht feststellen, ob das HTML-Flag gesetzt und welche Kategorie gesetzt wurde.
Weiter wird endlich eine ECHTE Anrede in Abhängigkeit des Geschlechts (Herr/Frau/Firma) eingebaut. Diese wird mit einem neuen Platzhalter ermöglicht. Auch ist bei dieser Extension für das FE gleich die passende Anmeldung mit Template eingebaut.

Bei dieser Extension wäre noch zu beachten, dass der URL Prefix des Senders (für Fetch und Links im NL) nicht FIX dem des aufgerufenem Typo3 BE ist, sondern manuell in der Modul-Konfiguration hinterlegt wird. Dies eröffnet ganz neue Möglichkeiten.. „Direct Mail Address with Gender” (df_dmailer)

D.

jweiland ·

In welchen Intervallen wird denn das dmailerd Skript vom cronjob angestoßen? Das Versenden von jeweils 50 HTML Mails dauert bei den von mir betreuten Projekten ca. 30-60 Sekunden und ich lasse das Skript alle 3 Minuten starten.
Wäre auch mal interessant, einen Blick aufs Maillog zu werfen...

Jochen Weiland

dfluess ·

Hallo Jochen,

ich hab noch nicht hineingeschaut habe aber Werte zwischen 10 und 500 eingesetzt und keine Besserung bemerkt. Momentan steht 50 also der Standard-Wert in der Variable. Bei 3000 Newsletter ein wenig mühselig. EIN ChronJob wäre eine Alternative aber ich muss den NL tagsüber versenden und behalte lieber die Kontrolle.

Aber bis Du sicher das das die Ursache sein könnte? Vielleicht müsste im Core grundlegend eine Funktion eingebaut werden, die sichergestellt, dass Mails wirklich nacheinander abgearbeitet werden oder ein neuer Zyklus erst gestartet würde, wenn alle Mails versendet worden sind.

Widersprüchlich finde ich aber, dass es bei meinem Test um lediglich 4 Adressen ging!

D.

jweiland ·

Also den Wert von 50 Mails pro Zyklus halte ich für vernünftig. Vielleicht gibt es auch ein Problem mit der max. Skriptlaufzeit? Daß der Server z.B. nach x Sekunden den Versand abbricht?
Und wenn man es über einen cronjob macht, was ist daran mühselig? Der Versand wird einmal freigegeben, der cronjob macht den Rest. Bei 50 Mails pro Zyklus und cronjob alle 3 Minuten sind 3000 Newsletter in drei Stunden raus, ohne weitere Interaktion.

Jochen Weiland

dfluess ·

Um ehrlich zu sein, ich habe mich bisher mit Cronjobs nicht beschäftigt und wüsste nicht, wie ich dass jetzt in Typo3 einrichten soll! Ich wollte den Versand zunächst ohne Fehler haben aber vielleicht hast Du Recht!

1. Geht son Job schnell einzurichten?
2. Und hast Du in diesem Zusammenhang auch die Auswertung der Rückläufer hinbekommen?? Ich habe dieses Thema frustriert beiseite gelegt.

Aber zunächst zum Versandproblem:

max_execution_time steht bei mir auf 30 min. das sollte wohl reichen (bei 4 Adressen allemale ;-)

Viele Grüße

jweiland ·

Ein cronjob hat nichts mit Typo3 zu tun, sondern ist ne UNIX Sache. Anlegen mit

crontab -e

und dann einen Eintrag anlegen z.B.

*/3 * * * * /absoluter/pfad/zu/meinem/dmailerd.phpsh

Eine Skriptlaufzeit von 30 min halte ich für ungewöhnlich lange...

Jochen Weiland

dfluess ·

Es geht also um das Script "dmailerd.phpsh" im Typo3 ahhhh :-)

Muss das noch angepasst werden??
returnmail.phpsh funktioniert ja auch nicht so wie es soll..

jweiland ·

Man muss ggf. den Pfad zu PHP in diesen Skripten anpassen (1. Zeile). Ich muss z.B. immer /usr/local/bin statt /usr/bin draus machen. Man kann das Skript einfach mal von der Shell aus aufrufen und schauen, ob irgendwelche Fehlermeldungen kommen.

Das mit dem returnmail funktioniert erst, wenn man auf dem Server das Programm fetchmail isntalliert und entsprechend konfiguriert hat.

Jochen Weiland

dfluess ·

OK.. danke! Vielleicht richte ich das mal ein.

Aber wie gesagt: Zunächst muss der Versand auch manuell funktionieren.
Was nützt der beste HTML-Newsletter, wenn der nur unzuverlässig, wohl möglich an jeden zweiten Abonnenten versendet wird und man das nicht einmal sehen kann! Das müsste mal ein PHP-Profi unter die Lupe nehmen.

Wohlmöglich laufen die Kommandos schneller als diese verarbeitet werden können. Das ist vielleicht auch von der Performanz des Servers abhängig, was wiederum begründen könnte, warum bei einigen dieses Probleme nicht auftritt.
Da verschluckt sich was! Denn bei nur 4 Adressen sollte das ja wohl funktionieren!

D.

jweiland ·

Das ist wohl wahr - wenn der manuelle Versand nicht funktioniert, dann hilft auch der cronjob nicht weiter. Der erspart nur das ständige Klicken um die nächsten 50 Mails zu verschicken.

Jochen Weiland

Sutter ·

Hallo,

ich habe bereits von einem anderen Problem
gehört, das Newsletter doppelt versendet.

Dies kann passieren, wenn der manuelle
Versand zweimal angestossen wird bevor
der erste Versand tatsächlich abgeschlossen
ist. Scheinbar wird der Zähler bzw. Verweis
auf die nächsten 50 Adressen erst nach
dem Durchlauf eines Zyklus erhöht und
ein Doppelversand nicht durch einen
Sicherheitsmechanismus geschützt.

Nun aber zu deinem Problem:

Versuch einmal folgendes und lege 4 verschiedene
E-mailAdressen an, adresse1@irgendwas.de,
adresse2@irgendwas.de... und trage diese in dieser
Reihenfolge in eine neue Empfängerliste ein.

Sende dann den Newsletter an diese 4 Adressen.
Falls dann die Newsletter nur an adresse 1
und adresse 3 oder 4 gesendet werden wissen
wir, dass der Versand irgendwo blockiert wird, zum Beispiel am Virenschutz oder an einem
anderen Schutzmechanismus, z.Bsp. einem
"Worm Outbreak" oder Mail Traffic Limit.

Die Ursache liegt meiner Meinung nach
im dmail, eigentlich sollte es einen
Schutzmechanismus geben, der zum einen
einen Doppelversand verhindert und zum
anderen wartet bis eine E-Mail gesendet
wurde bevor die neue versendet wird.

Die Fehleranalyse ist so eine Sache für sich,
die automatische Auswertung der Rückläufer
(unzustellbar) hat bei mir noch nie funktioniert.

Da kommt mir doch gerade noch so eine Idee,
vielleicht könnte man das sogar ausnutzen um
zu sehen was da tatsächlich passiert...

Z.Bsp. legen wir eine Empfängerliste mit
100 fiktiven E-Mail (fiktiv1-fiktiv100)
Adressen an, die tatsächlich
nicht existieren. Diesen senden wir dann den Newsletter.
Im konfigurierten Postfach (dmail Modulkonfig)
sollten dann eigentlich 100 Rückläufer zu finden
sein... Falls nicht könnte man herausfinden,
welche zugestellt wurden und welche nicht.

dfluess ·

Danke für den Tipp..

Ich vermute wirklich, dass ein Doorkeeper da seit neuem reinpfuscht. Denn ich habe Direct Mail nochmal völlig neu, auf in einer frischen Typo3 Version eingerichtet. Das gleiche! Von 4 Anmeldungen kamen wieder nur 2 Mails an!

Da ich in den ketzten zwei Jahren Direct mail ohne Probleme benutzt hatte, kann ich mir nur vorstellen, das Mittwaldmedien da was auf dem Server gepackt hat!
<grummel>

highlander ·

Na wunderbar, da scheine ich ja nicht der einzige mit diesem Problem zu sein. Ich benutze dmailer seit zwei Monaten.

Mir ist zum oben Erwähnten noch folgendes aufgefallen:

- Ich habe zuerst ca. 1000 NL manuell (jeweils 50) ausgelöst -> soweit schien dabei alles i.o.

- Das wurde mir dann zu mühsam und ich habe die aus 50 mails in class.t3lib_dmailer.php auf 500 gestellt -> oh Schreck, einige bekamen den NL bis zu 10mal, und andere konnten ihn nicht lesen. (sehr lästig)

- Dann wurde der cronjob eingerichtet (50 NL per 5min.) Nun bekommt zwar niemand mehr einen doppelt, aber einige bekommen keinen NL und andere können ihn nicht lesen!?!

Das einige den NL nicht lesen können kann vermutlich auch auf der Empfangsseite liegen. Wie ich den NL anzulegen oder einzutellen brauche, damit ihn wenigstens alle lesen können, weiss ich leider auch nicht (liegt vermutlich nicht nur an der Unterscheidung HTML/TXT).

Vielleicht hilft das ja weiter.. auf jeden Fall brauche ich bald eine Lösung -> ansonsten knallt mir der Kunde seine verlorene Kundschaft um die Ohren...

jweiland ·

...aber einige bekommen keinen NL und andere können ihn nicht lesen!?!

Da hilft nur eine genaue Analyse:

WER bekommt keinen NL? Liste machen, dann analysieren, was haben diese gemeinsam (Provider, Email-Client, HTML/TEXT Abo...)
Mail-Log des Servers prüfen: gingen die Mails nicht raus oder gingen sie raus und wurden nicht zugestellt (zurückgekommene Mails prüfen)

"Andere können ihn nicht lesen". Das ist eine wischi-waschi Aussage. Wie soll man da bloß Hilfestellung geben??? Ist es weißer Text auf weißen Grund? Kyrillisch?

Jochen Weiland

highlander ·

Hallo Jochen

Tut mir leid, natürlich kann so kein Fehler gefunden werden. Ich wollte ja erstmal bloss mit den anderen das Leid teilen.

Zu den Fehlern:
Es scheint als wäre bei einen Teil von NL-Empfängern nur ein Teil des html-codes angekommen:

z.B. folgende Meldung wurde an mich weitergeleitet:

>-- Original-Nachricht --
> >To: ABC@bluewin.ch
> >Subject: DADA siegt!
> >From: XY-Team <news@xy.ch>
> >Date: Mon, 23 Jan 2006 16:00:25 +0100
> >
> >
> >
> > <html>
> > <head>
> > <base href="http://www.XY.ch/" /> <title>Error!</title>
> > </head>
> > <body bgcolor="white">
> > <div align="center">
> > <table border="0" cellspacing="0" cellpadding="0" width="333" bgcolor="#ffffff">
> > <tr>
> > <td><img src="t3lib/gfx/typo3logo.gif" width="333" height="43" alt="" /> vspace="10"
> >border="0" alt="" /></td>
> > </tr>
> > <tr>
> > <td bgcolor="black">
> > <table width="100%" border="0" cellspacing="1" cellpadding="10">
> ><tr> <td bgcolor="#F4F0E8">
> > <font face="verdana,arial,helvetica" size="2"><b><center><font> >size="+1">Error!</font></center></b><br />The page is not configured!
[type=
> >99][] </font>
> > </td>
> > </tr>
> > </table>
> > </td>
> > </tr>
> > </table>
> > </div>
> > </body>
> > </html>
> >
> >Beilage: Beilage
> >
> >
> >Beilage: Beilage
> >
> >
> >Beilage: Beilage
> >
> >
> >Beilage: Beilage
> >
> >
> >Beilage: Beilage
> >
> >
> >Beilage: Beilage
> >

Ausserdem gibt es NL-Empfänger die von durchsichtigen Mails sprechen. Ich nehme an das sich dabei einfach die Bilder im Text nicht an ihren Platz halten und einfach nach oben verschoben, hinter dem eigentlichen Text stehen. So entsteht ein beinahe unleserlicher Text über einem Bild!

Das sind die beiden Fehler die aufgetaucht, und auch gemeldet wurden. Die NL die ich bekommen habe, (bin auch eingetragen) waren bisher imm er iO.

Kann es sein dass es in der configuration von directmails Einstellungen gibt (z.B. Encoding for dm, configure technical options) die hierbei besser wären?

jweiland ·

Lesen bildet. Das gilt auch in diesem Fall (sorry, bin etwas sarkastisch heute, morgen wieder besser...)

Also werfen wir mal einen Blick auf den HTML Code, da finde ich so was wie

<title>Error!</title>
<font> >size="+1">Error!</font></center></b>The page is not configured!
[type=
> >99][] </font>

Was sollte man generell tun, wenn man Newsletter verschickt? Vorher mit eigenen Email Adressen testen. Und dann stellt man fest, daß vielleicht der HTML Newsletter funktioniert, aber die Nur-Text Version nicht.
Also "page is not configured [type=99]" besagt, daß die Nur-Text Version des Newsletters nicht richtig konfiguriert ist. Fehlt z.B. "plugin.alt.plaintext (99)" im Template?

Jochen Weiland

highlander ·

Uiuiui lieber Jochen,

da hast Du ja vielleicht (vermutlich ganz sicher) recht. Mein Template ist rudimentär und sieht so aus:

<!-- ###DOKUMENT### begin -->
 
<body bgcolor="#EAE4CC" text="#000000" link="#993333" vlink="#993333" alink="#993333" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" style="font-family: Verdana; font-size: 10px">
 

<div id="frame_home" align="left" style="position:absolute; top:50; left:50; width:500; overflow:hidden; ">
 <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="500" id="AutoNumber1" background="fileadmin/images/frame_home.gif">
   <tr>
     <td width="20" height="70" rowspan="2" bgcolor="#993333">
     <font size="1">###SZ###</font></td>
     <td width="20" valign="top" rowspan="2">
      </td>
     <td valign="top">
     <font size="1">###CONTENT###</font></td>
   </tr>
   <tr>
     <td valign="bottom">
     <font size="1">Herzlich grüsst <br />
     Ihr XY-Team<br />
     Copyright ©</font><span style="font-family: Arial; font-size: 11pt"> </span>
     <font size="1"><a href="http://www.XY.ch">www.XY.ch</a>
     </font></td>
     </tr>
   </table>
</div>
 

</body>
 
<!-- ###DOKUMENT### end -->

Wie Du siehst, nicht von einem...

"plugin.alt.plaintext (99)" im Template

Und wo müsste das nun hin?

jweiland ·

Das ist ein Typoscript Modul, das ins Typoscript-Haupttemplate mit eingebunden wird, kein HTML Template. "Genauso wie css_styled_content" oder "content(default)"

Jochen Weiland

highlander ·

Jetzt bin ich auch mit Dir einverstanden. Lesen bildet tatsächlich, aber leider nur wenns man's versteht! Und das habe ich jetzt auch verstanden :o

Das plugin ist nun drin...(unter dem SYS-Ordner Direct-Mail) und nun läuft es auch mit der TEXT-Version...

Einzig was noch nicht korrekt läuft: Die Links für die die Bilder des NL (in der Text-Version werden dafür nur die Links angezeigt)führen ins Nirvana? Wo kann dies geändert werden?