![Spamassassin - 测试没有标题的 html 电子邮件的内容](https://linux22.com/image/73817/Spamassassin%20-%20%E6%B5%8B%E8%AF%95%E6%B2%A1%E6%9C%89%E6%A0%87%E9%A2%98%E7%9A%84%20html%20%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E7%9A%84%E5%86%85%E5%AE%B9.png)
我正在使用 Scrivener 为我的公司撰写电子邮件。然后我使用“编译”功能导出为 HTML。
我想知道是否有一种方法可以使用 spam-assassin 对包含多个 html 电子邮件的文件夹进行本地测试。
我只想测试电子邮件的主题行和内容。所以我不想在任何地方发送电子邮件。另外,html 文件不会有电子邮件标题。
任何建议表示赞赏。
答案1
一些 SpamAssassin 测试使用邮件标头,因此它们是必需的。至少,如果没有它们,你的结果会不太准确。
我建议最简单的方法是将 HTML 文档填充到电子邮件中。使用一个简单的 shell 脚本就可以很容易地做到这一点。请注意,此示例和下一个示例使用flip
(您可能必须安装)来转换为电子邮件的 CRLF 行结尾。我想你也可以使用sed
。或者也许没有它也很好。
cat <<HEADER - in/message.html | flip -m > out/message.eml
From: "Your Company Name" <[email protected]>
To: "Your Name" <[email protected]>
Date: $(date -R)
Content-type: text/html; charset=utf-8
Content-transfer-encoding: binary
Subject: Your Subject Here
HEADER
缺点是,这会给您留下非 MIME 仅 HTML 消息。您可能必须禁用 SpamAssassin 规则,该规则会将您的邮件保留为纯 HTML。
另一个选择是该mime-construct
实用程序,您可能还需要安装它。然后你会这样做:
mime-construct --to '"Your Name" <[email protected]>' \
--subject "Your Subject Here" \
--header 'From: "Your Company Name" <[email protected]>' \
--header "Date: $(date -R)" \
--multipart 'multipart/alternative' --output \
--type 'text/plain; charset=utf-8' --file in/message.txt \
--type 'text/html; charset=utf-8' --file in/message.html \
| flip -m - > out/message.eml
您可以使用lynx -dump
来制作纯文本替代方案(例如lynx -dump in/message.html > in/message.txt
)
然后,您应该能够通过 SpamAssassin 将生成的文件作为电子邮件运行。
不用说,您需要遵循其他电子邮件最佳实践(确认选择加入、轻松订阅等)。