Zum Inhalt springen

automatischer Versand

Erstellt am 15. August 2005 · 19 Antworten · letzte Antwort am 27. Februar 2006

Tags: Frage

ThomasP ·

Hiho,

Mein automatischer Versand funktioniert leider nicht. D.h., die Mails werden zur Planzeit nicht rausgeschickt. Manuell funktioniert alles:

Falls Typo3 nicht so konfiguriert ist, um automatisch einen Versand anzustoßen, so haben Sie hier die Gelegenheit, dies manuell durchzuführen: Versand anstoßen

Jetz meine Frage: Wie bzw eher wo konfiguriere ich Typo3 denn, damit das automatische funktioniert?
Hab noch nichts dazu gefunden..

jweiland ·

Dazu muss man mit einem cronjob alle x Minuten die Datei dmailerd.phpcron aufrufen.

Und dazu noch die Datei returnmail.phpsh, falls man die nicht zustellbaren Mails auswerten will

Jochen Weiland

ThomasP ·

Ah, ok..
Dann werd ich das Thema mal auf Eis legen bis ich die Providerdaten habe #paralyzed#

besten Dank.

donvito ·

hallo..
ich hab den pfad zu der dmailer.phpcron gefunden..
aber wie und wo stelle ich den diesen Cronjob ein?? wo muss ich den ausführen.

/var/www/path/to/my/webspace/typo3/ext/direct_mail/mod/dmailer.phpcron

grusz.

donvito ·

Vielen Dank für die schnelle Antwort.

Ich bewege mich in den Anfängen von Typo3 und habe noch nichts von Cronjobs gehört.

Mögen Sie mir das ein bsichen ausführlicher beschreiben?

in der Configuration von dem DirectMail-Extended gibts es eine Cronjob einstellung bezüglich der Sprache..

Ist die einstellung für das ausführen des automatischen versendens der newsletter mail auch hier zu finden? Die Datei dmailer.phpcron ist die auszuführende Datei? welchem Programm muss der pfad zugeordnet sein?

vielen Dank, schonmal im Vorraus.. d.

jweiland ·

Mit dem Befehl crontab werden die regelmässig wiederkehrenden Abläufe unter Linux/Unix gesteuert. Aufruf von der Shell aus. Das hat mit Typo3 selbst nichts zu tun.

Details dazu durch Eingabe von "man crontab"

Mit Hilfe des Befehls crontab wird einfach nur festgelegt, in welchen Zeitabständen das Skript dmailerd.phpcron aufgerufen wird (mit kompletter Pfadangabe).

Jochen Weiland

donvito ·

ich habe versucht via shell den dmailerd.phpcron direkt und mit absoluten pfad versucht zu starten, aber ich bekomme kein ergebniss.
bin mir sicher, dass ich den kompletten pfad genommen habe, er sagt aber das es no such file or directory findet!
wie bekomme ich das zum starten?

jweiland ·

Evtl. muss man die erste Zeile vom dmailerd.phpcron anpassen, wie z.B. bei den Servern von 1&1 und Schlund....

Jochen Weiland

mic_jan ·
jweiland schrieb

Evtl. muss man die erste Zeile vom dmailerd.phpcron anpassen, wie z.B. bei den Servern von 1&1 und Schlund....

Hmmm... da ich im Netz dazu bisher nichts finden konnte, wäre es toll, wenn mal jemand 😉 schreiben könnte, wie man die Datei für 1&1 anpasst.

Gruss

Michael

jweiland ·

oh, mann.........

in der ersten Zeile steht, wo sich auf dem Server PHP befindet. Da steht also /usr/bin/php.
Mit ein bisschen suchen auf dem Server findet man heraus, dass sich PHP aber im Verzeichnis /usr/local/bin/php befindet (zumindest bei den Managed Servern)

Jochen Weiland

donvito ·

danke für die tipps.

aber eine allgemeine verständnisfrage: muss man den dmailered.phpcron einmalig via cronjob ansprechen oder muss ich ihm schon ein cyclus geben, wei z.b 0 15 1 * * um ein am ersten jedes monats abzuschicken?

die dmailered.phpcron muss auf jedenfall direkt angesprochen werden?

Content-type: text/html
X-Powered-By: PHP/4.3.10

Wrong path... This 'sr/local/bin' should be the last part of '/usr/local/bin'

diese meldung kommt!

jweiland ·

natürlich muss die Datei per cronjob regelmässig aufgerufen werden. Und zwar sinnvollerweise nicht einmal im Monat sondern z.B. alle 3 Minuten. Bei jedem Aufruf werden dann 50 Mails rausgeschickt, solange bis der Job fertig ist.
Und die Fehlermeldung deutet ja wohl auf einen Schreibfehler in der Pfadangabe hin, da fehlt ein u

Jochen Weiland

Beatz ·

Hallo ihr Beiden,

auf der Suche nach meinem Fehler habe ich einzig und allein diesen Beitrag im Forum gefunden. Ich bekomme ebenfalls die Fehlermeldung

Wrong path... This 'sr/local/bin' should be the last part of '/usr/local/bin'

und hatte schon in den Quelltext geschaut.

Die erste Zeile im Quelltext musste ich ohnehin bearbeiten in

#!/usr/bin/php -q

Ein "u" von "usr" fehlt definitiv nicht.

donvito, hast Du evtl. schon eine Lösung gefunden?

username1 ·

Hallo,

ich habe die Zeile crontab -e in die beiden Dateien (am Anfang der Datei) eingefügt. Aber trotzdem hat es nicht geklappt. Ich muss noch "invoke Mailer Engine" drücken, um die Newsletter zu senden.

Was muss ich noch machen? vielen Dank

username1

jweiland ·

1. Von der Shell aus crontab -e eingeben
2. Folgende Zeile im Editor (in der Regel vi) eingeben:

5 * * * * /absoluter/pfad/zur/datei/dmailerd.phpcron

3. Speichern - fertig

Damit wird der Mailversand alle 5 Minuten ausgelöst

Jochen Weiland

McGregor ·

Hi!

Bei mir war es etwas komplizierter. Ich will das den anderen nicht vorenthalten:

Ich habe auch die Änderungen am Script vornehmen müssen. Bei mir lag php im Verzeichnis /usr/bin/. Um das herauszufinden muss man nur

which php

in die Konsole eingeben. Dann schreibt einem das Betriebssystem, welches "php" man verwendet. Meine Ausgabe sieht so aus:

/usr/bin/php

Nachdem ich nun diese Änderungen am Script vorgenommen hatte erhielt ich schöne Fehlermeldungen. So zum Beispiel:

Wrong path... This "sr/bin" should be the last part of "usr/bin".

Das brachte mich ein wenig aus der Ruhe, denn unumstritten IST "sr/bin" das Ende von "usr/bin".

Wie auch immer. Ich dachte mir, dann müssen die Pfade falsch sein und fing an die define-Angaben zu tunen. Ohne wirklichen Erfolg. Die Hardcore-Angabe des Verzeichnissen ($dir) half auch nicht wirklich.

Dann fiel mir ein, dass wir hier eine globale Kopie von Typo3 für alle unsere Webpräsenzen verwenden, d.h. wir haben die Verzeichnisse typo3, t3lib, tslib und misc per symbolischen Link in unsere einzelnen Webseiten eingebunden.
Dann konnten die Pfade auch nicht richtig sein, denn durch den link hieß das typo3-verzeichnis jetzt

/Library/WebServer/Documents/typo3_aktuell/typo3

und nicht

/Library/WebServer/Documents/www.domain.de/typo3

Mist. Also habe ich die Links für diese Domain gelöscht und die Inhalte aus den Verzeichnissen (typo3, t3lib ...) kopiert. Dann habe ich den Job nochmals per

/usr/bin/php -q /Library/WebServer/Do../typo3/ext/direct_mail/mod/dmailer.phpcron

getestet, aber ich erhielt erneute Fehlermeldungen (cannot instantiate class ... usw.). Also habe ich die Verzeichniss nochmal getestet und abgeändert.

Folgende Einstellungen waren vorher im Script

$dir = dirname($HTTP_ENV_VARS["_"]);
define("PATH_typo3", dirname(dirname(dirname($dir)))."/");
define("PATH_site", dirname(PATH_typo3)."/");
define("PATH_t3lib", PATH_typo3."t3lib/");
define("PATH_typo3conf", PATH_site."typo3conf/");
define('TYPO3_MODE','BE');

Und das habe ich eingesetzt

$dir = $HTTP_ENV_VARS["PWD"];
define("PATH_typo3", dirname(dirname(dirname($dir)))."/");
define("PATH_site", dirname(PATH_typo3)."/");
define("PATH_t3lib", PATH_site."t3lib/");
define("PATH_typo3conf", PATH_site."typo3conf/");     
define('TYPO3_MODE','BE');

Man beachte, dass ich als Environment-Variable statt "_", "PWD" verwende. Dort steht bei mir nämlich der Pfad korrekt (getestet per print_r($HTTP_ENV_VARS)😉.

Dann ist definitiv der Pfad für t3lib falsch. Das kann eigentlich überhaupt nicht funktionieren, denn wenn ich einen Pfad nehme und typo3 anhänge (define("PATH_site", dirname(PATH_typo3)."/")) und dann diesen Pfad nehme und t3lib anhänge, dann ist das falsch.
Das Ergebnis ist

bla/blub/foo/bar/typo3/t3lib

Laut der Standardinstallation von typo3 liegen die Verzeichnisse typo3 und t3lib auf der selben Ebene.
Also muss auch diese Angabe abgeändert werden (siehe Änderungen).

So und auf einmal funktionierte das Script ohne Fehlermeldungen.

Grüße
McGregor