Ottieni cron per inviare e-mail in formato HTML


10

Ho un programma di statistiche che funziona su file di registro tramite cron. Il programma stats può generare HTML.

In questo momento mi affido al meccanismo MAIL_TO nel crontab.

MAILTO=my@email.addr
55 23 * * * /usr/bin/htmlstats

Il problema è che desidero che l'email inviata sia visualizzata come HTML e non come testo normale.

Cron inserisce la seguente intestazione nell'email:

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

Qualche idea su come lo cambierei in:

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

Risposte:


3

Non penso che tu possa. Una soluzione potrebbe essere quella di reindirizzare l'output a sendmail o posta, il che offre un maggiore controllo sul tipo di contenuto e su altre intestazioni.


Grazie. Ho provato le tubazioni per posta e sono contento di quello che vedo. Ti auguro il meglio!
Mark L

La CONTENT_TYPEsoluzione variabile menzionata in un'altra risposta sembra funzionare almeno in alcune versioni cron.
Peter Eisentraut,

22

Ho messo la CONTENT_TYPE="text/plain; charset=utf-8"a /etc/crontabdi avere la mia posta in UTF-8.

Mettere CONTENT_TYPE="text/html; charset=utf-8"in /etc/crontabper inviare la posta in formato HTML.

È possibile aggiungerlo in un file specifico se la directory /etc/cron.d/esiste. In questo caso, la specifica è definita solo per le attività richieste.


1
È fantastico ... posso confermare che funziona su Ubuntu 14.04.2.
Billynoah,

@billynoah sì, questa dovrebbe essere la risposta accettata. Funziona su archlinux, cronie 1.5.1-1
g33kz0r,

lavorato su centos
zzapper

Funziona in Ubuntu 16
Marco Marsala il

Non sembra funzionare su macOS Mojave.
Burhan Ali,

-1

Si, puoi.

<?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 &'); ?>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.