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.

MAILTO=my@email.addr
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"

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.


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.


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 &'); ?>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.