Lassen Sie cron E-Mails im HTML-Format senden

10

Ich habe ein Statistikprogramm, das auf Protokolldateien über cron ausgeführt wird. Das Statistikprogramm kann HTML ausgeben.

Im Moment verlasse ich mich auf den MAIL_TO-Mechanismus in der Crontab.

[email protected]
55 23 * * * /usr/bin/htmlstats

Das Problem ist, dass die gesendete E-Mail als HTML und nicht als einfacher Text angezeigt werden soll.

Cron fügt den folgenden Header in die E-Mail ein:

Content-Type: text/plain; charset="UTF-8"

Irgendeine Idee, wie ich das ändern würde zu:

Content-Type: text/html; charset="UTF-8"
Mark L.
quelle

Antworten:

3

Ich glaube nicht, dass du kannst. Eine Lösung könnte darin bestehen, die Ausgabe an sendmail oder mail weiterzuleiten, wodurch Sie mehr Kontrolle über den Inhaltstyp und andere Header erhalten.

Jakob Borg
quelle
Vielen Dank. Ich habe die Paspel gegeben, um es zu verschicken, und ich bin zufrieden mit dem, was ich sehe. Alles Gute!
Mark L
Die CONTENT_TYPEin einer anderen Antwort erwähnte variable Lösung scheint zumindest in einigen Cron-Versionen zu funktionieren.
Peter Eisentraut
22

Ich habe das CONTENT_TYPE="text/plain; charset=utf-8"eingegeben /etc/crontab, um meine Mail in UTF-8 zu haben.

Geben Sie CONTENT_TYPE="text/html; charset=utf-8"ein /etc/crontab, um die Mail in HTML zu senden.

Sie können es in einer bestimmten Datei hinzufügen, wenn das Verzeichnis /etc/cron.d/vorhanden ist. In diesem Fall wird die Spezifikation nur für die angeforderten Aufgaben definiert.

Dom
quelle
1
Das ist großartig ... kann bestätigen, dass es unter Ubuntu 14.04.2 funktioniert.
Billynoah
@billynoah ja, das sollte die akzeptierte Antwort sein. Arbeiten auf archlinux, cronie 1.5.1-1
g33kz0r
arbeitete an centos
zzapper
Arbeitet in Ubuntu 16
Marco Marsala
Scheint unter macOS Mojave nicht zu funktionieren.
Burhan Ali
-1

Ja, du kannst.

<?php exec('(  echo "test<br>créer un mail"| mail -s "SUBJECT" -a "Content-Type: text/html; charset=UTF-8" '.$receiver.' -- -f '.$sender.' ) &> /dev/null &'); ?>
George SEDRA
quelle