Dapatkan cron untuk mengirim email berformat html

10

Saya memiliki program statistik yang berjalan pada file log melalui cron. Program statistik dapat menampilkan HTML.

Saat ini saya mengandalkan mekanisme MAIL_TO di crontab.

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

Masalahnya adalah saya ingin email yang dikirim ditampilkan sebagai HTML dan bukan sebagai teks biasa.

Cron menempatkan tajuk berikut dalam email:

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

Tahu bagaimana saya akan mengubahnya ke:

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

Jawaban:

3

Saya pikir Anda tidak bisa. Sebuah solusi bisa dengan menyalurkan output ke sendmail atau mail, yang memberi Anda lebih banyak kontrol atas jenis konten dan header lainnya.

Jakob Borg
sumber
Terima kasih. Saya memberikan pipa untuk mengirim pergi dan saya senang dengan apa yang saya lihat. Semua yang terbaik!
Mark L
The CONTENT_TYPEvariabel solusi yang disebutkan dalam jawaban lain tampaknya bekerja setidaknya dalam beberapa versi cron.
Peter Eisentraut
22

Saya memasukkan ke CONTENT_TYPE="text/plain; charset=utf-8"dalam /etc/crontabuntuk memiliki surat saya di UTF-8.

Masukan CONTENT_TYPE="text/html; charset=utf-8"dalam /etc/crontabuntuk mengirim surat dalam HTML.

Anda dapat menambahkannya dalam file tertentu jika direktori /etc/cron.d/ada. Dalam hal ini, spesifikasi hanya ditentukan untuk tugas yang diminta.

Dom
sumber
1
Ini luar biasa ... dapat mengkonfirmasi itu berfungsi di Ubuntu 14.04.2.
billynoah
@ Gillynoah ya, ini seharusnya jawaban yang diterima. Bekerja pada archlinux, cronie 1.5.1-1
g33kz0r
bekerja pada centos
zzapper
Bekerja di Ubuntu 16
Marco Marsala
Tampaknya tidak berfungsi di macOS Mojave.
Burhan Ali
-1

Ya kamu bisa.

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