Obtenez cron pour envoyer des e-mails au format html

10

J'ai un programme de statistiques qui s'exécute sur les fichiers journaux via cron. Le programme de statistiques peut produire du HTML.

En ce moment, je me fie au mécanisme MAIL_TO dans la crontab.

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

Le problème est que je veux que l'e-mail envoyé s'affiche en HTML et non en texte brut.

Cron place l'en-tête suivant dans l'e-mail:

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

Toute idée de comment je changerais cela en:

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

Réponses:

3

Je ne pense pas que vous puissiez. Une solution pourrait être de diriger la sortie vers sendmail ou mail, ce qui vous donne plus de contrôle sur le type de contenu et les autres en-têtes.

Jakob Borg
la source
Merci. J'ai donné le tuyau pour envoyer un mail et je suis content de ce que je vois. Bonne chance!
Mark L
La CONTENT_TYPEsolution variable mentionnée dans une autre réponse semble fonctionner au moins dans certaines versions cron.
Peter Eisentraut
22

Je mis le CONTENT_TYPE="text/plain; charset=utf-8"en /etc/crontabavoir mon courrier en UTF-8.

Mettez CONTENT_TYPE="text/html; charset=utf-8"en /etc/crontabenvoyer le courrier au format HTML.

Vous pouvez l'ajouter dans un fichier spécifique si le répertoire /etc/cron.d/existe. Dans ce cas, la spécification est définie uniquement pour les tâches demandées.

Dom
la source
1
C'est génial ... peut confirmer que cela fonctionne sur Ubuntu 14.04.2.
billynoah
@billynoah oui, cela devrait être la réponse acceptée. Fonctionne sur archlinux, cronie 1.5.1-1
g33kz0r
travaillé sur centos
zzapper
Fonctionne dans Ubuntu 16
Marco Marsala
Ne semble pas fonctionner sur macOS Mojave.
Burhan Ali
-1

Oui, vous pouvez.

<?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
la source