12

我正在开发一个反垃圾邮件项目(centmail),该项目涉及让发件人使用添加自定义标头(以及签名,但那部分更容易)的客户端插件。一般的问题是在您的外发邮件中添加一个电子邮件标题,其中标题字段的内容是为每条消息动态确定的。

令人惊讶的是,这在 Pine/Alpine 中似乎是不可能的。Pine 允许您为传出邮件指定过滤脚本,但只有正文而不是标题通过它。您当然可以在 Pine 设置中定义自定义标题,但我认为无法动态更改它们的内容。

我很高兴听到如何在其他电子邮件客户端(Thunderbird、Outlook、Evolution、Mutt 等)中执行此操作。当然,如果我对 Pine 的看法有误。

4

12 回答 12

27

你可以在Eudora中做到这一点。

您可以在 Outlook中使用自定义表单以编程方式进行操作。

您可以从 about:config 在 Mozilla中执行此操作。

于 2009-01-27T08:38:41.587 回答
20

虽然它不是严格意义上的插件,但您可以制作一个代理 SMTP 服务器来修改电子邮件 - 例如类似于 AVG Outgoing E-mail Scanner 之类的东西。这将具有与许多电子邮件客户端合作的优势;您还可以制作一个插件,一方面与代理通信,另一方面与电子邮件 UI 通信。

于 2009-01-27T08:40:33.393 回答
5

Thunderbird 插件Enigmail控制外发邮件的标题。所以这是一个存在证明,它在 Thunderbird 中是可能的。

于 2008-12-02T05:50:43.823 回答
5

我同意皮斯克沃尔的观点。我会将它实现为代理 SMTP 服务器,这将产生许多好处:

  1. 您不会受限于任何一个电子邮件客户端,因此会受到其 API(如果有)的限制
  2. 可以应用在邮件服务器端,免去安装部署的烦恼
于 2009-01-27T10:54:10.720 回答
4

Emacs 可以通过编程方式完成此操作。您可以创建一个缓冲区 ( get-buffer-create),用标头信息填充它,然后以mail-send非交互方式调用 (设置mail-interactivenil)。

与以下内容一起使用的缓冲区内容(标题+正文)示例mail-send

From: "Toto" <toto@toto.net>
To: somebody@somewhere.net
Subject: Something
BCC: sebastien.rocca-serra@f4-group.com
--text follows this line--

Hello, how are you?

您还可以通过在mail-send-hook.

于 2009-01-27T10:58:31.790 回答
3

这已经被专门询问过关于 Thunderbird 的问题:

最佳答案包含修改普通 xul/js 中的标头的代码。

于 2009-01-27T11:02:15.213 回答
2

我从 Brain 曲调的旧部分中挖掘到了其他东西......

如果我理解正确,我认为这种方法是去配置 SENDMAIL 并通过 [bash/etc] 脚本编写 。

根文件 http://snap.nlc.dcccd.edu/reference/sysadmin/julian/ewtoc.html

发送邮件配置

标头声明 http://snap.nlc.dcccd.edu/reference/sysadmin/julian/ch04/061-064.html#Heading22

http://snap.nlc.dcccd.edu/reference/sysadmin/julian/ch04/078-080.html

标题行的格式由 H 行定义。这一行的语法是

H[c ?c mflagsc ?]c hnamec :c htemplate

本规范中的续行直接插入到传出消息中。htemplate 在插入到消息中之前进行了宏扩展。如果扩展为空,则不包括标题行。如果指定了 mflags(被问号包围),则必须在邮件程序定义中声明至少一个指定的标志,以便自动输出此标头。如果这些标头之一在输入中,则无论这些标志如何,它都会被定向到输出。

特殊标题行 几个标题行具有配置文件定义的特殊解释。其他人在 sendmail 中内置了解释,如果不更改代码就无法更改。以下列表中描述了内置功能:

• Return-Receipt-To:如果发送此标头,则在最终交付完成后,将向任何指定的名称发送一条消息。邮件程序必须在邮件程序描述符中设置 l 标志(本地传递)。• Errors-To:如果在处理过程中的任何地方发生错误,此标头会将错误消息发送到列出的名称而不是发送者。将此标题行用于邮件列表,以便将错误返回给列表管理员。• 收件人:如果收到的邮件没有在邮件中列出收件人(在收件人:、抄送:或密件抄送:行中),sendmail 会为在sendmail 命令行中指定的每个收件人添加一个明显收件人:标题行。

于 2009-01-27T08:59:42.060 回答
1

我突然想到,因为 pine 是开源的,如果这个功能对你来说对这个程序很重要,你可以尝试为项目做贡献以添加这个功能。

于 2009-01-29T00:20:46.457 回答
1

您可能想要研究的一件事是使用伪标题而不是标题。因为 pine/alpine 允许您为要通过的电子邮件指定一个过滤程序,您可以在开始时将标头添加到正文中,这应该很容易处理。我不确定它是否完全符合您的目的,因为我不知道您正在组装哪种类型的系统。

我通过在Debian BTS System中使用伪头文件了解了它们。

回答这个问题,我使用 GMail,你不能以编程方式编辑标题(我很想看到一个让你的网络邮件)。你甚至不能过滤像 X-List 这样的自定义标题,这很烦人。

于 2009-01-29T20:01:42.857 回答
1

为自定义标头插入邮件客户端的一般想法有问题。

那里有很多客户。包括不同的版本,在不同的系统上。

header+body 格式背后的好处是所有非用户、服务器和路由特定数据对用户都是隐藏的。这个想法很重要。我认为用户不应该为一些自定义的、与服务器相关的标头而烦恼。

此外,您尝试附加的数据实际上是用户特定的数据。喜欢签名。它验证发件人的有效性。没有理由对用户隐藏它。

电子邮件数据的签名是众所周知的过程,被 PGP、SMIME 等使用。可能有更多的邮件客户端允许此类操作(通过外部程序验证和签名)而不是允许添加或修改自定义邮件标题。

自定义标头应由邮件服务器修改;邮件客户端的用户数据。

我认为你应该把你的数据放在消息或消息部分。

于 2009-01-30T13:53:48.853 回答
1

在不修改 pine 本身或修改邮件服务器的情况下使其在 pine 中工作的一种方法是让 pine 通过命令行程序(传统上是 /usr/sbin/sendmail 等)传递,并让被调用的程序成为原始程序的包装器程序。然后你可以添加你需要的任何标题。

虽然这很丑,但它肯定不会扩展到整个用户群。

于 2009-01-30T14:39:47.560 回答
0

对于支持使用外部编辑器的所有邮件客户端,您可以拥有一个脚本,将特定标头添加到发送到编辑器的模板中。在mutt中,有一个名为的配置参数edit_headers可以添加一组通用的标头,因此很容易添加您自己的标头。还有另一个my_hdr可以使用的参数称为。Mutt 确实支持 ` backtick ` 符号来运行外部命令。

能够指定自己的模板会更好,但目前还不可能。

于 2009-01-27T08:56:11.397 回答