Obtenga cron para enviar correos electrónicos con formato html

10

Tengo un programa de estadísticas que se ejecuta en archivos de registro a través de cron. El programa de estadísticas puede generar HTML.

En este momento confío en el mecanismo MAIL_TO en el crontab.

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

El problema es que quiero que el correo electrónico enviado se muestre como HTML y no como texto sin formato.

Cron coloca el siguiente encabezado en el correo electrónico:

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

Alguna idea de cómo cambiaría esto a:

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

Respuestas:

3

No creo que puedas. Una solución podría ser canalizar la salida a sendmail o mail, lo que le da más control sobre el tipo de contenido y otros encabezados.

Jakob Borg
fuente
Gracias. Le di una vuelta al correo y estoy contento con lo que estoy viendo. ¡Todo lo mejor!
Mark L el
La CONTENT_TYPEsolución variable mencionada en otra respuesta parece funcionar al menos en algunas versiones cron.
Peter Eisentraut
22

Puedo poner el CONTENT_TYPE="text/plain; charset=utf-8"de /etc/crontabtener mi correo en UTF-8.

Poner CONTENT_TYPE="text/html; charset=utf-8"en /etc/crontabenviar el correo en HTML.

Puede agregarlo en un archivo específico si el directorio /etc/cron.d/existe. En este caso, la especificación se define solo para las tareas solicitadas.

Dom
fuente
1
Esto es increíble ... puedo confirmar que funciona en Ubuntu 14.04.2.
billynoah
@billynoah sí, esta debería ser la respuesta aceptada. Funciona en archlinux
cronie
trabajó en centos
zzapper
Funciona en Ubuntu 16
Marco Marsala
No parece funcionar en macOS Mojave.
Burhan Ali
-1

Sí tu puedes.

<?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
fuente