Mails automatisch per CronJob abholen [UPDATE]

Mehr aus phlyMail herausholen, als auf den ersten Blick zu sehen ist

Mails automatisch per CronJob abholen [UPDATE]

Postby mso » 01.04.2005 15:02

Neben dem Fetcher im Frontend bietet phlyMail noch ein Script an, was per CronJob eingebunden automatisch die Mails der eingerichteten Profile aller User holen kann.

Der Eintrag in der crontab könnte etwa so aussehen:
0,20,40 * * * * cd /pfad_zu_phlymail/backend && php -f email.fetcher.php
D.h. dass alle 20min nach Mails gesehen wird.

Der Pfad zu phlyMail und evtl. der Pfad zu PHP ist anzupassen. PHP wird oftmals per /usr/bin/php aufgerufen, genaue Infos dazu sollte der Provider liefern.

Diese Methode hat einige Vorteile:
- POP3-Konten, die einen Login nur alle x Minuten zulassen, können damit problemlos abgerufen werden
- Mails werden auch dann abgeholt, wenn man gerade nicht eingeloggt ist.
- Der Download sehr großer Mails, der im Frontend u.U. nicht binnen 30s erledigt ist, gelingt problemlos

Anmerkung: Bis phlyMail 3.02.11 hieß das Script pop3.fetcher.php, seit Version 3.3.0 hingegen email.fetcher.php. Mit der letztgenannten Version wurde der Fetcher in die Lage versetzt, die INBOX-Ordner von IMAP-Konten mit abzurufen.
Last edited by mso on 17.10.2007 14:26, edited 2 times in total.
Matthias Sommerfeld

phlyMail Developer
http://phlymail.com
User avatar
mso
Site Admin
Site Admin
 
Posts: 1274
Joined: 01.11.2001 01:00
Location: Berlin

Postby StrongZero » 22.11.2005 04:11

Kann man den Cronjob auch von extern starten lassen? Also einen exteren Cronjobdienst nutzen?
Kurz gesagt, kann man das php Skript auch direkt ansprechen?
User avatar
StrongZero
Member
Member
 
Posts: 72
Joined: 21.03.2004 12:57
Location: Frankfurt/Main

Postby mso » 22.11.2005 04:13

Die Spuren diverser Versuche finden sich hier im Board. Es ist im Allgemeinen davon abzuraten, da dieses Script einzig und allein dafür geschrieben wurde, per Kommandozeile aufgerufen zu werden.
Matthias Sommerfeld

phlyMail Developer
http://phlymail.com
User avatar
mso
Site Admin
Site Admin
 
Posts: 1274
Joined: 01.11.2001 01:00
Location: Berlin

Postby basti » 15.12.2005 07:47

Hi,

geht das dann auch für die Imap Accounts?
basti
 

Postby mso » 15.12.2005 07:54

Mit der finalen Version 3.3 soll das dann auch gehen. Im aktuellen Beta-Status werden weiterhin nur POP3-Konten abgeholt.
Matthias Sommerfeld

phlyMail Developer
http://phlymail.com
User avatar
mso
Site Admin
Site Admin
 
Posts: 1274
Joined: 01.11.2001 01:00
Location: Berlin

Postby marac » 16.12.2005 18:55

Werden die Abholversuche irgendwo protokolliert? Oder der Zeitpunkt des letzten Aufrufs? Meine Testmail wird offensichtlich nicht abgeholt, jetzt ist nur die Frage, woran es liegt...
marac
Junior Member
Junior Member
 
Posts: 43
Joined: 18.05.2004 14:24

direkter script zugriff

Postby DirkME » 16.12.2005 22:15

Hallo Zusammen,

ich würde einen direkten Zugriff auch sehr gerne sehen, so ist man dann in der Lage Providerunabhängige CronJob-Dienste zu nutzen :-)

Und... natürlich IMAP sollte auch unterstützt werden :shock:

Cheers

Dirk
DirkME
 

Re: direkter script zugriff

Postby StrongZero » 07.01.2006 04:38

DirkME wrote:ich würde einen direkten Zugriff auch sehr gerne sehen, so ist man dann in der Lage Providerunabhängige CronJob-Dienste zu nutzen :-)


Auch wenns flyingbit nicht gern hört, das geht auch jetzt schon ohne Probleme:

------------------------------------------------------------------------------------------
1. In dem Ordner backend die .htaccess Datei löschen.
2. Einen Benutzernamen und Passwortschutz mittels .htaccess anlegen (kann man weglassen, sollte man aus Sicherheitsgründen aber unbedingt machen).
3. In Phlymail das Abrufen des Hintergrundprozesses auf 5 Minuten stellen (beim POP3 Konto)
4. Beim externen Anbieter (z.B. http://www.cronjob.de) folgende url alle 5Minuten aufrufen lassen: http://benutzername:passwort@deineadresse.tld/phylmailordner/backend/email.fetcher.php

benutzername und passwort natürlich mit den eigenen Angaben aus der .htaccess Datei ersetzen.
------------------------------------------------------------------------------------------

Ich habe es bis jetzt nur mit der kostenlosen Phlymail Lite Version und dem kostenlosen Dienst von cronjob.de getestet, deswegen weiß ich nicht ob es auch öfters geht. Ich hab all-inkl.com als Provider, aber ich denke das ist unwichtig, müsste bei jedem funktionieren.
Last edited by StrongZero on 03.03.2006 21:45, edited 1 time in total.
User avatar
StrongZero
Member
Member
 
Posts: 72
Joined: 21.03.2004 12:57
Location: Frankfurt/Main

funktioniert / Cronjob

Postby DirkME » 07.01.2006 11:51

Hallo StrongZero,

danke für den Hinweis. Ich habe die Personal Version und mußte nur ein paar Zeilen entfernen, weil ich eine Fehlermeldung über eine undefinierte Variable bei den SMS bekommen habe.

Läuft aber super über CronJob!

Danke

LG

Dirk
DirkME
 

Postby mso » 07.01.2006 17:51

Auch wenns flyingbit nicht gern hört, [...]

Na nun, so ganz ungern höre ich es nicht, ist ja immerhin schon mal was, daß man externe CronJob-Dienste nutzen kann, auch wenn der eigenen Provider es nicht bietet. Allerding dürfte der Backendprozess, auf diese Weise aufgerufen, trotzdem maximal 30s laufen können, was bei höheren Mailaufkommen schon mal in die Hose gehen kann.

Weiterhin sollte man bei dieser Lösung darauf achten, daß der Benutzer für die .htaccess und dessen Passwort nirgendwo sonst verwendet wird. Immerhin wird dieser Zugang bei dem externen Diesntleister hinterlegt und auch noch vollkommen ungesichert in der URL übermittelt.

Daher ein großes Dankeschön an die ausgezeichnete Beschreibung von StrongZero. Ich bitte alle, die diese Lösung nutzen, seine und die hier genannten Tipps zu beherzigen.

An Dirk: Zieh dir bitte nochmal die aktuelle Fassung der PE in der Core-Version und kopiere dann aus dem ZIP die Dateien aus phlymail/backend/ auf den Server (außer "meiner" .htaccess natürlich). Dir fehlten nur die SMS-Templates, die versehentlich in der ersten Version der 3.02.10 nicht enthalten waren.
Matthias Sommerfeld

phlyMail Developer
http://phlymail.com
User avatar
mso
Site Admin
Site Admin
 
Posts: 1274
Joined: 01.11.2001 01:00
Location: Berlin

Postby StrongZero » 13.01.2006 02:59

flyingbit wrote:Allerding dürfte der Backendprozess, auf diese Weise aufgerufen, trotzdem maximal 30s laufen können, was bei höheren Mailaufkommen schon mal in die Hose gehen kann.

Nunja, da es von Server zu Server geht müssten das schon sehr große oder sehr viel Mails sein. Und die Wahrscheinlichkeit dass innerhalb von 5 Minuten so viele oder so große Dateien ankommen ist eher gering. Vorrausgesetzt man lässt sich keine riesigen Dateien schicken und keine Leitung bzw. kein Server laggt :wink:

flyingbit wrote:Weiterhin sollte man bei dieser Lösung darauf achten, daß der Benutzer für die .htaccess und dessen Passwort nirgendwo sonst verwendet wird.

Auf jeden Fall! Das ist sehr wichtig.

flyingbit wrote:Daher ein großes Dankeschön an die ausgezeichnete Beschreibung von StrongZero.

Danke, gern geschehen :D
User avatar
StrongZero
Member
Member
 
Posts: 72
Joined: 21.03.2004 12:57
Location: Frankfurt/Main

Postby mso » 13.01.2006 03:02

Zum Thema große Mails schweig ich lieber still. Ich habe schon Kundeninstallationen gesehen, wo Mails im Bereich von 50MB (!) abgeholt werden sollten....
Matthias Sommerfeld

phlyMail Developer
http://phlymail.com
User avatar
mso
Site Admin
Site Admin
 
Posts: 1274
Joined: 01.11.2001 01:00
Location: Berlin

Postby StrongZero » 13.01.2006 18:57

flyingbit wrote:Zum Thema große Mails schweig ich lieber still. Ich habe schon Kundeninstallationen gesehen, wo Mails im Bereich von 50MB (!) abgeholt werden sollten....


:shock:
Okay, dann würde das Cronskript durch einen externen Cronjobdienst nicht funktionieren.
Aber für solche Größen gibts ja eigentlich FTP :wink:
User avatar
StrongZero
Member
Member
 
Posts: 72
Joined: 21.03.2004 12:57
Location: Frankfurt/Main

Postby mso » 14.01.2006 13:24

Aber für solche Größen gibts ja eigentlich FTP

Ja, Sie wissen das, ich weiß das, aber Lieschen Müller... :stoned:
Matthias Sommerfeld

phlyMail Developer
http://phlymail.com
User avatar
mso
Site Admin
Site Admin
 
Posts: 1274
Joined: 01.11.2001 01:00
Location: Berlin

selbst diese Grössen.....

Postby DirkME » 14.01.2006 13:40

Ich denke das selbst diese Grössen dürften nicht wirklich ein Probelm darstellen, weil der Datenverkehr von Server zu Server echt schnell ist :twisted:

Ich hatte nur einmal ein Problem mit einem Anhang von 16MPB in meinem IMAP Account, da wollte diese email sich nicht anzeigen lassen und damit konnte ich das File auch nicht downloaden :shock:

Aber.... PhlyMail ist und bleibt empfehlenswert und sobald es den "Eigene Dateien" Ordner gibt ein unbedingtes "MUß"! :wink:

Ein wunderschönes Wochenende

Dirk
DirkME
 

Postby mso » 14.01.2006 13:49

Wenn Mails zu groß werden, kommt PHP leider irgendwann an die vordefinierten Grenzen.

Wer oft mit größeren Mails arbeitet und die Hoheit über den Server hat, kann natürlich über die PHP-Direktiven memory_limit und max_execution_time so Einiges drehen 8-)
Matthias Sommerfeld

phlyMail Developer
http://phlymail.com
User avatar
mso
Site Admin
Site Admin
 
Posts: 1274
Joined: 01.11.2001 01:00
Location: Berlin

Re: Mails automatisch per CronJob abholen

Postby basti » 23.01.2006 21:11

flyingbit wrote:Neben dem Fetcher im Frontend bietet PHlyMail noch ein Script an, was per CronJob eingebunden automatisch die Mails der eingerichteten Profile aller User holen kann.

Der Eintrag in der crontab könnte etwa so aussehen:
0,20,40 * * * * cd /pfad_zu_phlymail/backend && php -f pop3.fetcher.php
D.h. daß alle 20min nach Mails gesehen wird.



Und das soll so stimmen? Wenn ich das ausführe kommt diese Meldung:
/var/www/sam1/html/mail/backend && /usr/bin/php -f pop3.fetcher.php ..

/bin/sh: line 1: /var/www/sam1/html/mail/backend: is a directory
basti
 

Postby mso » 23.01.2006 22:43

Es stimmt so. Stellen Sie bitte sicher, daß Sie wirklich alle Sternchen übernommen haben. Der folgende Link ist eventuell lesenswert:
http://www.php4-forum.de/crontab.htm
Matthias Sommerfeld

phlyMail Developer
http://phlymail.com
User avatar
mso
Site Admin
Site Admin
 
Posts: 1274
Joined: 01.11.2001 01:00
Location: Berlin

Postby basti » 23.01.2006 22:54

Hallo,

hatte doch glatt das cd vergessen, aber nun bekomme ich folgenden Fehler:

Parse error: parse error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /var/www/sam1/html/mail/shared/lib/phm_streaming_mailparser.php on line 13


Was muss ich nun tun? Zur Info: ich muss alle php5 Script mit der Endung php5 ausführen. Kann es daran liegen?
basti
 

Postby mso » 23.01.2006 22:58

Ja, das ist definitv die Ursache - mit /usr/bin/php führen Sie wahrscheinlich das PHP4-Binary aus, was sich natürlich an der PHP5-Klasse mailparser stört.

Mit
Code: Select all
find / -name php*
sollten Sie alle PHP-Binaries auf Ihrem Server finden. Oder Sie bauen sich schnell eine phpinfo() mit der Endung php5 und rufen diese im Browser auf. Das sollte Ihnen sagen, welches Binary verwendet wird.

Tragen Sie dann dessen Pfad in der Crontab ein.

Übrigens: ein /pfad/zu/php -v gibt Ihnen die verwendete Version aus.
Matthias Sommerfeld

phlyMail Developer
http://phlymail.com
User avatar
mso
Site Admin
Site Admin
 
Posts: 1274
Joined: 01.11.2001 01:00
Location: Berlin

Postby basti » 23.01.2006 23:05

Sieht schon besser aus, aber nun kommt die Meldung noch:

<b>Notice</b>: Undefined variable: smsactive in <b>/var/www/sam1/html/mail/backend/pop3.fetcher.php</b> on line <b>74</b><br />
basti
 

Postby mso » 23.01.2006 23:10

Ah, sieht in der Tat besser aus. Fügen Sie bitte in Zeile 29 der Datei pop3.fetcher.php diesen Text ein:
Code: Select all
$sms_active = false;


Dann ist Ruhe ;)
Matthias Sommerfeld

phlyMail Developer
http://phlymail.com
User avatar
mso
Site Admin
Site Admin
 
Posts: 1274
Joined: 01.11.2001 01:00
Location: Berlin

Postby mso » 23.01.2006 23:12

Muß natürlich heißen:

Code: Select all
$smsactive = false;


'tschuldigung... zu schnell getippt...
Matthias Sommerfeld

phlyMail Developer
http://phlymail.com
User avatar
mso
Site Admin
Site Admin
 
Posts: 1274
Joined: 01.11.2001 01:00
Location: Berlin

Postby basti » 23.01.2006 23:16

Das hat leider nix geholfen...Fehlermeldung kommt immer noch.
basti
 

Postby mso » 23.01.2006 23:35

Mein Posting von 22:12 haben Sie gesehen?
Matthias Sommerfeld

phlyMail Developer
http://phlymail.com
User avatar
mso
Site Admin
Site Admin
 
Posts: 1274
Joined: 01.11.2001 01:00
Location: Berlin

Next

Return to Tipps & Tricks

Who is online

Registered users: No registered users

cron