我使用 Gmail,时不时地我不得不修改它,因为文本/纯电子邮件应该以等宽字体呈现。这使得浏览系统生成的报告等变得更加容易。这样做的问题是,每隔几年,当 Gmail 的语义发生变化时,我就必须重新破解 Gmail,而且我有更多“开发人员”类型的同事,他们不会破解他们的 Gmail 来提高这些电子邮件的可读性。
所以,我想知道是否有人知道一个简单的命令来获取文本文件并将其包装在 HTML 和足够的 MIME 内容中以正确地将消息编码为...理想的多部分替代方案,其中 HTML 是 PRE 标记中的文本。
我的意思是,我是否可以将 MIME 输出提供给 cron?我很乐意通过管道传输到 html-mime-email 类型命令...
答案1
刚刚发现您的问题,希望答案仍然有用。
我多年来一直成功运行带有 HTML 输出的 cron 作业。在执行命令之前,需要在 crontab 中设置以下变量:
CONTENT_TYPE="text/html; charset=utf-8"
CONTENT_TRANSFER_ENCODING="8bit"
请注意,它是 text/html 但不是多部分。
pre
除了编写一个明显的脚本之外,我还没有找到任何其他方法来用标签包装输出:
#!/bin/sh
echo '<pre>'
"$@"
echo '</pre>'
然后在 crontab 中的命令前面明确使用它。
这种方法有一个小缺点,即该脚本的名称将在 cron 发送的电子邮件的主题中可见,例如,如果您将其称为pre
: Cron <user@host> pre your_command
。
答案2
cron
如果您的意思是破解作业失败时发出的标准电子邮件,那么您无法在不修改cron
.如果需要,您可以从脚本中发出 HTML(甚至是多部分/替代),但这不会改变cron
将其作为text/plain
正文发送的事实。
我建议您将您的cron
工作包装在执行此工作的外部适应脚本中。外部适配器始终成功并且不发出任何输出,但在内部它收集其子进程的输出和退出状态,并在适用时发送自己的电子邮件。