Mails automatisch per CronJob abholen [UPDATE]

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

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby nachgesalzen » 27.02.2008 19:00

Hallo Onkel Admin,

die "Programmierung" ist leider nicht so meine stärke. ss gibt die möglichkeit beim webhoster einen cronjob zu starten oder die datei mail.fetcher.php zu bearbeiten. was muss ich schreiben oder machen um zu einer lösung zu kommen?
für Ihre bemühungen vieln Dank im voraus

gruß nachgesalzen
nachgesalzen
Newbie
Newbie
 
Posts: 7
Joined: 27.02.2008 11:58

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby sektor7 » 27.02.2008 20:15

hast du denn die Möglichkeit, crontabs bei deinem webhoster zu starten / verwalten?
welchen hast du?

wenn du die Datei mail.fetcher.php bearbeitest, werden trotzdem deine mails noch nicht abgeholt.

Crontabs brauchst du sowieso. Entweder über deinen Webhoster, oder über einen externen anbieter. Wobei die erste Lösung natürlich die wesentlich bessere ist.
User avatar
sektor7
Newbie
Newbie
 
Posts: 15
Joined: 07.07.2004 10:38
Location: Rügen

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby daniel » 09.11.2008 12:43

Hallo ich habe bei mir mail.fetcher als cronjob eingerichtet, es wird auch ohne Fehlermeldungen ausgeführt, leider holt er die E-Mails trotzdem nicht ab!
Die automatische Abholung steht auf 5 min, und im Crone ist abholen jede 30 min eingestellt. Folgende Zeile steht im Crone drinn cd /volume1/web/phlymail/backend && /opt/bin/php -f email.fetcher.php (das da keine Zeiten angegeben sind hat seine Richtigkeit da zum eintragen ein Script verwendet wird mit extra Spalten für die Zeiten, bei anderen Jobs funktioniert das auch). Ich habe es auch über die Kommandozeile ausgeführt, ebenfalls keine Fehlermeldung, aber E-Mails werden trotzdem nicht abgeholt. Meine verwendete Version ist phlyMail MessageCenter 3.06.33 . Ich bitte um Hilfe.
daniel
 

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby mso » 12.11.2008 21:45

Ist denn das in der Crontab angegebene PHP-Binary mit den gleichen Parametern kompiliert (oder das gleiche) wie das, mit dem der Apache PHP ausführt? Manchmal lungert auf der Festplatte irgendwo noch ein veraltetes PHP rum. /opt/bin/php -v bzw /opt/bin/php -i sollte detailliertere Auskunft darüber geben (der Output lässt sich mit dem der PHP-Info in der Config von phlyMail vergleichen).
Matthias Sommerfeld

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

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby daniel » 13.11.2008 19:41

Hallo es wird in beiden Fällen die PHP Version 5.2.6 angezeigt. Einen Auszug der PHPinfo habe ich angehangen.
PhP Script musste ich allerdings per IPKG nachinstallieren da es vorher nicht vorhanden war!




BusyBox v1.1.0 (2008.09.19-12:27+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

DiskStation> /opt/bin/php -v
PHP 5.2.6 (cli) (built: Aug 25 2008 03:27:08)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
DiskStation>
Attachments
phpinfo.pdf
(188.86 KiB) Downloaded 53 times
daniel
 

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby mso » 17.11.2008 06:45

Die PHP-Info sagt mir, dass der Server eine Synology DiskStation ist. Mit denen gibt es aber i.d.R. keine Probleme. Was sagt denn php -i auf der Konsole von der Box? Unterscheidet sich das wesentlich von der hier angehängten phpinfo()?
Matthias Sommerfeld

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

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby daniel » 17.11.2008 20:45

Ja es sind einige Unterschiede vorhanden.
Ich habe ihnen die Datei deshalb noch einmal beigefügt.
Attachments
PHP-i.txt
(15.51 KiB) Downloaded 71 times
daniel
 

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby mso » 17.11.2008 21:56

Gut, es scheint zwar ein wenig anders kompiliert zu sein, aber so gravierend schlimm sieht es auch nicht aus.

Zu beachten sind beim email.fetcher.php aber noch zwei Dinge:

- Der Fetcher beachtet die im Profil eingetragenen "Hole alle x Minuten": Wenn parallel per Frontend abgeholt wird (Sie also gerade eingeloggt sind), kann es sein, dass email.fetcher.php nie zum Zuge kommt.
- Es muss in den Profilen bei "Hole Mails alle x Minuten" sowohl für per Frontend als auch per Backend ein Wert > 0 drin stehen. Sonst greift eben nur der Mechanismus. für den ein Wert > 0 eingetragen ist.
Matthias Sommerfeld

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

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby daniel » 17.11.2008 23:39

Ich habe es noch mal Probiert mit:
-wenn ich eingeloggt bin: 5 min
-per Hintergrundprozess: 5 min

und den cron habe ich ausführen alle 6 min (*/6 * * * * root cd /volume1/web/programme/phlymail/backend && /opt/bin/php -f email.fetcher.php) eingestellt.
Ich bin auch ausgelogt und E-Mails habe ich auch an eine von meinen Adressen gesendet.
aber selbst wenn ich mich dann nach 30 Min wieder einlgge hat er keine von denen abgeholt.
Auch wenn ich die Datei über Kommandozeile starte wird nichts abgeholt.
daniel
 

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby mso » 18.11.2008 13:17

Aktivieren Sie doch mal die Fehlerberichterstattung: In die Config einloggen, dann dort unter Systemeinstellungen "Fehlerberichterstattung" auf "An". Eventuell wirft der email.fetcher.php dann beim Ausführen einen Fehler.
Matthias Sommerfeld

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

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby daniel » 18.11.2008 18:20

Diese Funktion hatte ich bereits eingeschaltet. Werden Eventuelle Fehlermeldungen direkt in der Kommandozeile Angezeigt
oder werden sie In ein Log geschrieben?
daniel
 

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby mso » 19.11.2008 03:03

Editeren Sie mal bitte die Datei /opt/etc/php.ini. Finden Sie dort die Zeile mit "display_errors" und stellen Sie diese Direktive von "Off" auf "On". Rufen Sie dann den email.fetcher.php nochmal auf der Kommandozeile auf.
Matthias Sommerfeld

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

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby daniel » 20.11.2008 09:49

Hallo ich /opt/etc/php.ini. "display_errors" auf "On"gestellt, es wird aber trotzdem nichts angezeigt beim Aufruf von email.fetcher.php.
daniel
 

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby mso » 20.11.2008 09:53

Rufen Sie mal dies auf der Kommandozeile auf:
Code: Select all
/opt/bin/php -i | grep display_errors


Steht denn die Direktive jetzt auch wirklich auf "On"? Manchmal lungern noch andere php.ini rum, wo dann plötzlich was ganz anderes drin steht.
Matthias Sommerfeld

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

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby daniel » 21.11.2008 09:15

Hallo es wird folgendes angezeigt: DiskStation> /opt/bin/php -i | grep display_errors
display_errors => STDOUT => STDOUT

Folgende php.ini sind auf dem Server vorhanden:
DiskStation> find / -name php.ini
/opt/etc/php.ini
/volume1/@optware/etc/php.ini
/usr/syno/etc.defaults/php.ini
/usr/syno/etc/php.ini

Die Option display-Errors steht auf On.
daniel
 

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby mso » 21.11.2008 09:41

STDOUT heißt dann wohl, dass beim Aufruf auf der Kommandozeile evtl. PHP-Fehlermeldungen direkt ausgegeben werden.

Was mir gerade noch einfällt: In der Crontab welchen Users steht denn der Aufruf vom Fetcher und mit welchem User rufen Sie den zum Test auf? Doch hoffentlich mit dem gleichen, unter dem phlyMail sonst auch läuft?
Matthias Sommerfeld

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

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby daniel » 21.11.2008 10:17

Im cron ist der Benutzer root und auch beim Test.
Die Datenbank von phlymail läuft allerdings mit admin.
daniel
 

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby mso » 22.11.2008 17:10

Gemeint war weniger die DB, eher der Apache-User. Der hat meist ja sowas wie www oder wwwrun. Packen Sie den Fetcher doch mal in die passende Crontab. Zum Test sollten Sie auch der User des Apache sein. Kann sonst gut sein, dass es wegen verquerer Rechte fehlschlägt. Ansonsten bin ich mit meinem Latein aber langsam am Ende. Haben Sie parallel schon mal in einem Synology-Forum um Rat gefragt?
Matthias Sommerfeld

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

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby Toogas » 13.03.2009 18:39

Hallo liebe Gemeinde,
ersteinmal muss ich loswerden, dass Phlymail ein super Tool ist und definitiv das Beste seiner Art.

Dennoch habe ich ein kleines Problem mit dem Backend-Fetcher.
Ich habe den Cronjob soweit eingerichtet, allerdings gibt er dennoch folgenden Fehler aus:

Code: Select all
Warning: chdir(): SAFE MODE Restriction in effect.  The script whose uid is 535 is not allowed to access ../ owned by uid 0 in /var/www/web34/html/leon/apps/mail/backend/email.fetcher.php on line 13

Warning: set_time_limit(): Cannot set time limit in safe mode in /var/www/web34/html/leon/apps/mail/backend/email.fetcher.php on line 17

Warning: parse_ini_file(choices.ini.php): failed to open stream: No such file or directory in /var/www/web34/html/leon/apps/mail/backend/email.fetcher.php on line 18


Für mich sieht das so aus, als gäbe es Probleme mit einem aktivierten Safe Mode. Der Safe Mode ist aber definitiv deaktiviert!
Kann es ein Problem sein, dass (lauf phpinfo) der Safe Mode Local auf Off steht, der Master Value aber auf On steht?
Gibt es da für den Fall, dass dem so ist evtl. einen Lösungsansatz?
Der Crontag führt übrigens alle 20 Minuten folgenden Befehl aus:
Code: Select all
/usr/bin/php -f /var/www/web34/html/leon/apps/mail/backend/email.fetcher.php


Ich hoffe, dass meine Frage nicht schon tausend Mal diskutiert wurde (für denn Fall dass doch, bitte ich höflich um Entschuldigung) und würde mich über Antwort sehr freuen.

Lieben Gruß, Leon

PS: Noch die Ausgabe der Kurzdiagnose:

Code: Select all
*Allgemeine Informationen*

Programm-Version: phlyMail Lite 3.06.39
Wir sind hier
/var/www/web34/html/leon/apps/mail/config
Speicherbedarf (reine Dateigröße): 6,6 MB
Relativer Pfad zu den Konfigurationsdateien: shared/config
Relativer Pfad zu den Themes: frontend/themes
Genutzte PHP-Version: 5.2.0-8+etch10
PHP Memory Limit: 64M
Register globals: Off
Safe Mode: Off
IP: **.***.***.***
Server-Software: Unbekannt
Betriebssystem: Linux confixx.s8 2.6.18-6-686 #1 SMP Sun Feb 10 22:11:31 UTC 2008 i686
Webserver-Schnittstelle: apache2handler
Mailversandmethode: SMTP
Schreiben in Ordner: "shared/config" Erfolgreich
Aktuelles Theme: Amplified ((c) 2006-2009 phlyLabs, http://phlylabs.de)
Aktuelle Sprache: de_Du ((c) 2003-2006 phlyLabs, http://phlylabs.de)
Toogas
Newbie
Newbie
 
Posts: 3
Joined: 13.03.2009 11:27

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby mso » 14.03.2009 13:36

Hallo Toogas,

Toogas wrote:ersteinmal muss ich loswerden, dass Phlymail ein super Tool ist und definitiv das Beste seiner Art.

Danke!

Oh ja, der SafeMode, die Geisel der Menschheit PHP-Welt. Mit PHP 6 wird der endlich verschwinden :) Auf php.net gibt es einige Hinweise zum SafeMode

Aber auch damit lässt sich umgehen.

Warning: set_time_limit():

Dieses Funktion müssten Sie im SafeMode ignorieren.

Der Rest deutet darauf hin, dass nicht alle Dateien von phlyMail dem User gehören, unter dem PHP läuft. Dazu als Zitat von php.net:
php.net wrote:When safe_mode is on, PHP checks to see if the owner of the current script matches the owner of the file to be operated on by a file function or its directory. For example:

Es müsste also die gesamte Ordnerstruktur von phlyMail inklusive aller Dateien dem Benutzer zugeordnet werden, unter dem PHP läuft. Im Falle des CronJobs gilt dann, dass der Eintrag zum Abholen der Mails in die Cron-Tab des Apache gehört (weil PHP vermutlich normalerweise vom Apache gestartet wird).

Warning: chdir(): SAFE MODE Restriction in effect. The script whose uid is 535 is not allowed to access ../ owned by uid 0 in /var/www/web34/html/leon/apps/mail/backend/email.fetcher.php on line 13

Diese Meldung sagt mir, dass das Hauptverzeichnis von phlyMail dem user root gehört. Ändern Sie doch mal via chown noch dessen Eigentümer entsprechend ab.

Zusammengefasst sollten also ALLE Dateien von phlyMail inklusive dessen Hauptordner dem gleichen System-User gehören (z.B. Apache) und idealerweise auch der CronJob unter diesem Benutzer gestartet werden.
Matthias Sommerfeld

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

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby Toogas » 16.03.2009 14:23

Ersteinmal vielen Dank für die umfangreiche Antwort.
Ich muss an dieser Stelle zugeben, dass ich nicht unbedingt ein PHP-Experte bin.

Das grundsätzliche an meinem Problem, was ich einfach nicht verstehe, ist die Tatsache, dass der Safe Mode doch deaktiviert ist. Sowohl die Kurzdiagnose, als auch phpinfo geben eindeutig an, dass der Safe Mode OFF ist.

Ist es also tatsächlich irgendwie so, dass dieser "Master" Wert (was immer das auch genau ist), das ganze irgendwie tangiert, weil ich das Script nicht über die Domain, sondern über den direkten Serverpfand anspreche (ich kann die PHP.ini Einstellungen irgendwie immer nur für Domains konfigurieren und nicht für den gesamten Webpace - also Domainunabhängig).

Aber welchem User sollte ich den die Ordnerstruktur schenken? Woher erfahre ich, welcher User PHP-Scripte auf dem Server ausführt? Muss ich mich dafür an den Provider wenden? Dann würde ich den nämlich gleich fragen, ob er nicht einfach den Master Wert auch auf OFF setzen könnte...

Nochmals vielen Dank für die getätigte Antwort und im Voraus für kommende Antworten!
Toogas
Newbie
Newbie
 
Posts: 3
Joined: 13.03.2009 11:27

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby mso » 17.03.2009 18:40

Der SafeMode dient ja dazu, dass Provider (Hoster) ihrerseits PHP besonders sicher betreiben können. Daher dürfte sich der Master-Value nicht ändern lassen - wenn in der zentralen php.ini der SafeMode aktiv ist, lässt er sich an anderer Stelle und auf Scriptebene nicht abschalten.

Muss ich mich dafür an den Provider wenden? Dann würde ich den nämlich gleich fragen, ob er nicht einfach den Master Wert auch auf OFF setzen könnte...


Das würde ich im Moment empfehlen. Eventuell kann der Provider auch mal eben den Dateien die richtigen Benutzer- und Gruppenrechte vergeben ;)
Matthias Sommerfeld

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

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby marac » 10.06.2009 10:56

Mein Hintergrund-Fetcher läuft seit einiger Zeit nicht mehr. Ich kann leider nicht mehr sagen, seit welchem Update.
Meldung ist folgende:

PHP Parse error: parse error, unexpected T_ARRAY, expecting '&' or T_VARIABLE in /[...]/shared/lib/imap.inc.php on line 381

Nachdem aber das Abholen der Mails im Frontend sauber klappt, liegt der Fehler wohl nicht wirklich in der imap.inc.php sondern eher in irgendeiner Übergabe...
Der Fetcher soll zwei IMAP-Postfächer sowie drei oder vier POP3-Postfächer checken.
marac
Junior Member
Junior Member
 
Posts: 41
Joined: 18.05.2004 14:24

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby mso » 10.06.2009 11:13

Da wird das Kommandozeilen-PHP ein PHP4 sein. Prüfen Sie doch bitte mal, ob der Pfad zum PHP in der Crontab stimmt. Neuere PHP-Binaries werden i.d.R. unter /usr/local/bin/php installiert.
Matthias Sommerfeld

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

Re: Mails automatisch per CronJob abholen [UPDATE]

Postby marac » 10.06.2009 11:18

Unwahrscheinlich... Auf dem Server laufen zwar PHP4 und PHP5, aber mit unterschiedlichen Namen. In der Crontab (bzw. in dem Shell-Script, das über die Crontab aufgerufen wird), wird explizit "php5 email.fetcher.php" gerufen. Und dass mein Hoster plötzlich ein PHP4 mit Namen php5 betreibt, halte ich für nicht sonderlich wahrscheinlich ;)
Ich glaube auch, dass es in zeitlichem Zusammenhang mit meinem Update auf die 3.7 steht...


Edit: Hmmm, seltsam. Ich hab jetzt mal die .htaccess aus dem backend-Ordner entfernt und die email.fetcher.php im Browser aufgerufen, da bekomme ich keine Fehlermeldung. Das spricht ja dann doch dafür, dass mit der Kommandozeilen-Version irgendwas nicht passt...
marac
Junior Member
Junior Member
 
Posts: 41
Joined: 18.05.2004 14:24

PreviousNext

Return to Tipps & Tricks

Who is online

Registered users: Exabot [Bot]

cron