Poproś crona o wysyłanie wiadomości e-mail w formacie HTML

10

Mam program statystyczny, który działa na plikach dziennika za pośrednictwem crona. Program statystyczny może wyświetlać HTML.

W tej chwili polegam na mechanizmie MAIL_TO w crontab.

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

Problem polega na tym, że chcę, aby wiadomość e-mail była wyświetlana jako HTML, a nie jako zwykły tekst.

Cron umieszcza następujący nagłówek w wiadomości e-mail:

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

Jakikolwiek pomysł, jak bym to zmienić na:

Content-Type: text/html; charset="UTF-8"
Mark L.
źródło

Odpowiedzi:

2

Nie sądzę, że możesz. Rozwiązaniem może być przesłanie danych wyjściowych do sendmaila lub poczty, co daje większą kontrolę nad typem zawartości i innymi nagłówkami.

Jakob Borg
źródło
Dzięki. Próbowałem wysłać wiadomość i jestem zadowolony z tego, co widzę. Wszystkiego najlepszego!
Mark L
CONTENT_TYPERozwiązanie zmienna wspomniano w innym odpowiedź wydaje się działać, przynajmniej w niektórych wersjach crona.
Peter Eisentraut
22

Włożyłem CONTENT_TYPE="text/plain; charset=utf-8"w /etc/crontabmieć pocztę w UTF-8.

Umieścić CONTENT_TYPE="text/html; charset=utf-8"w /etc/crontabcelu wysłania wiadomości w HTML.

Możesz dodać go do określonego pliku, jeśli katalog /etc/cron.d/istnieje. W takim przypadku specyfikacja jest definiowana tylko dla żądanych zadań.

Dom
źródło
1
To jest niesamowite ... może potwierdzić, że działa na Ubuntu 14.04.2.
billynoah
@billynoah tak, to powinna być zaakceptowana odpowiedź. Działa na archlinux, cronie 1.5.1-1
g33kz0r
pracował na centos
zzapper
Działa w Ubuntu 16
Marco Marsala,
Nie działa na macOS Mojave.
Burhan Ali
-1

Tak, możesz.

<?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
źródło