获取cron发送html格式的电子邮件


10

我有一个统计程序,可通过cron在日志文件上运行。stats程序可以输出HTML。

现在,我依靠crontab中的MAIL_TO机制。

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

问题是我希望发送的电子邮件显示为HTML而不是纯文本。

Cron在电子邮件中放置了以下标头:

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

我知道如何将其更改为:

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

Answers:


3

我认为你不能。一种解决方案是将输出通过管道发送到sendmail或mail,这使您可以更好地控制内容类型和其他标头。


谢谢。我给管道寄去了邮件,我对自己所看到的感到满意。祝一切顺利!
Mark L 2010年

CONTENT_TYPE另一个答案中提到的变量解决方案似乎至少在某些cron版本中有效。
Peter Eisentraut 2013年

22

我把CONTENT_TYPE="text/plain; charset=utf-8"/etc/crontab有我的邮件UTF-8。

CONTENT_TYPE="text/html; charset=utf-8"/etc/crontab发送邮件的HTML。

如果目录/etc/cron.d/存在,则可以将其添加到特定文件中。在这种情况下,仅为请求的任务定义规范。


1
太棒了...可以确认它可以在Ubuntu 14.04.2。
billynoah

@billynoah是的,这应该是公认的答案。适用于archlinux,cronie 1.5.1-1
g33kz0r

在centos上工作
zzapper 2016年

在Ubuntu 16中工作
Marco Marsala

在macOS Mojave上似乎不起作用。
Burhan Ali

-1

是的你可以。

<?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 &'); ?>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.