[Eisfair] mail, php via cron job
Marcus Roeckrath
marcus.roeckrath at gmx.de
So Aug 13 17:03:53 CEST 2017
Hallo Ulrich,
Marcus Roeckrath wrote:
>>>> <?php
>>>> $empfaenger = "Ulrich<Ulrich at dort.de>";
>>>> $absender = "Ulrich<Ulrich at meins.de>";
>>>> $reply = "Administrator Ulrich<admin at meins.de>";
>>>> $subject = "Infomail vom Server" ;
>>>> $message = "Testtext !"
Hier fehlt ein ; - wohl Typo, weil das auch auf der Kommandozeileknallen
würde.
>>>> $headers = 'From:' . $absender . "\n";
>>>> $headers .= 'Reply-To:' . $reply . "\n";
>>>> $headers .= 'X-Mailer: PHP/' . phpversion() . "\n";
>>>> $headers .= "Content-type: text/html\n";
>>>> mail($empfaenger, $subject, $message, $headers );
>>>> ?>
>>
>>> Was ist mail?
>>> Eine interne php-Funktion? ja!
>> mail ist eine interne php Funktion zum Versenden von mails
>>
>>>> Da sind keine Pfad bezogenen Infos drin.
>>> Eben, deren Fehlen kann unter fcron zum Problem werden.
>>> Aus Sicherheitsgründen hat der fcron nur eine eingeschränkte Umgebung.
>>>
>> Wo sollte ich denn i.o.g. Beispiel Pfade angeben?
>
> Versuche wirklich mal das php-Skript zu zwingen, einen Errorlevel > 0
> zurückzugeben, damit fcron eine Fehlermail rausschmeisst.
Wenn ich Dein Skript als cronjob mit exit(1); am Ende laufen lasse, bekomme
ich von fcron folgende Mail:
sh: sendmail: command not found
Job '/usr/bin/php -f /root/mail.php' terminated (exit status: 1) (mailing
output)
Was heißt das?
Die interne mail-Funktion bemüht sendmail, welches als /usr/sbin/sendmail
vorliegt.
/usr/sbin liegt nicht im Pfad von fcron, daher ist der cronjob wie folgt zu
definieren:
PATH=$PATH:/usr/sbin ; export PATH ; /usr/bin/php
-f /var/www/htdocs/meinpfad/email.php
Damit sollte es nun auch bei Dir funktionieren, jedenfalls gehts hier.
--
Gruss Marcus
Mehr Informationen über die Mailingliste Eisfair