从命令行发送简单的 HTML 电子邮件?

从命令行发送简单的 HTML 电子邮件?

我有一个 cron 作业,它生成资源列表、到期日期和到期天数。报告生成一个 CSV 文件。我使用 将其附加到消息中mutt -a report.csv

我还想在电子邮件正文中包含一些信息。我使用 gawk 将其格式化为简洁的行并将其添加到正文中。它看起来像这样:

Resource                                 Expiration Date           Days  
======================================== ========================= ========

resource one                             Oct 11 2009 07:59 PM      3    
resource two                             Nov  3 2009 07:59 PM      22     
resource three has a longer name         Nov  6 2009 07:59 PM      28     
rscrc 4                                  Dec  8 2009 07:59 PM      58     
you get the point                        Dec 17 2009 07:59 PM      66     
www.blockbuster1.smartsubs.net           Dec 23 2009 07:59 PM      70     

(是的,我弄错了日期和有效期,在这个例子中它们不合逻辑)

问题是,大多数收件人的电子邮件客户端没有配置为使用固定宽度字体显示纯文本电子邮件。因此,对他们来说,它看起来像这样:

资源到期日期天数
========================================= =========================== ========

资源一 2009 年 10 月 11 日下午 7:59 3
资源二 2009 年 11 月 3 日下午 7:59 22
资源三的名称更长 2009 年 11 月 6 日下午 7:59 28
rscrc 4 2009 年 12 月 8 日下午 7:59 58
您明白我的意思了 2009 年 12 月 17 日下午 7:59 66
www.blockbuster1.smartsubs.net 2009 年 12 月 23 日下午 7:59 70

有没有关于如何在电子邮件中轻松格式化此文本以将其强制转换为固定宽度字体的建议?我可以灵活地在此服务器上安装新的命令行工具

答案1

如果您拥有足够新的 mutt 版本,我相信您可以做这样的事情。

mutt -e 'set content_type="text/html"' -a file.csv [email protected] -s "subject" < index.html

index.html 将是您邮件的 html 正文。

答案2

我想说只需使用打印语句构建一个 html 表,虽然有点奇怪但很有效,我以前就这样做过。

不太复杂的是,使用 csv 到 html 表转换器。 这是一个用 awk。然后,您只需发送 html 和纯文本,它们的阅读器就可以使用。您必须查找如何使用您正在使用的邮件库/程序来执行此操作。

无论如何,我都会选择表格,而不是强制使用固定宽度字体。我认为表格会更一致(尽管我没有任何实际证据证明这一点)。

答案3

你不能用 ap 元素和一个用于等宽字体和预格式化间距的内联样式集来包装整个内容吗?

相关内容