我可以从 Mutt 中的特定电子邮件地址自动发送吗?

Spa*_*awk 3 email mutt

背景

我拥有一个全能域,因此发送到的所有电子邮件都将发送*@foo.bar到一个帐户。我有特定组织的唯一用户名,例如stackexchange@foo.bar. 如果电子邮件地址被盗用并且我开始收到垃圾邮件,我可以删除该帐户,并在 上创建一个新帐户stackexchange2@foo.bar。(这非常有效;我在 7 年内删除了大约 30 个电子邮件地址,并且收到的垃圾邮件为零。)

杂种功能

我正在考虑从 Thunderbird 转移到 Mutt 作为我的电子邮件客户端。但是,我广泛使用的一个 Thunderbird 附加组件是Virtual Identity。这允许我手动输入发件人地址,也可以通过两种方式自动修改此地址。

  1. 它保存与先前使用的发件人地址相关联的先前收件人的数据库。下次我向特定收件人发送电子邮件时,它会自动使用以前使用的地址填写发件人字段
  2. 如果收件人是新的,并且我回复了一封电子邮件,那么它会自动使用原始电子邮件发送到的地址填写发件人字段

Mutt 有没有办法完成这三个功能(上面的粗体)?我知道最后一点是有可能的,尽管该解决方案需要设置潜在发件人地址列表,而不是自动允许所有发件人进入*@foo.bar.

max*_*zig 7

您可以将 mutt 配置为使用与地址不同的地址(通过您的~/.muttrc),例如:

set use_from = yes
set envelope_from = yes
set from = default@example.org
set realname = "Default Realname"
# list of all your addresses
alternates @example\.org$
Run Code Online (Sandbox Code Playgroud)

您可以设置一些宏以在撰写新邮件之前显式切换 from:

macro index \e1 "set from=foo@example.org\n" "Select foo address"
macro index \e2 "set from=bar@example.org\n" "Select bar address"
# ...
Run Code Online (Sandbox Code Playgroud)

回复电子邮件时,您可以将 mutt 配置为自动使用 to-header 作为发件人地址(这是您问题中的第 2 点):

set reverse_name=yes
Run Code Online (Sandbox Code Playgroud)

不要重复使用真实姓名 - 当人们向您发送诸如"foo@example.org" <foo@example.org>以下内容的废话时会有所帮助:

set reverse_realname=no
Run Code Online (Sandbox Code Playgroud)

然后你可以设置一些钩子来让事情依赖于标头值——例如使用不同的 fcc 文件夹:

fcc-hook '~f ^foo@example\.org' '=foo'
Run Code Online (Sandbox Code Playgroud)

(还有其他钩子,比如send-hook等)

我会研究挂钩以实现您问题中的第 1 点。虽然,您需要一些外部脚本来维护这样的数据库。

根据您当前的 MTA 设置,您可能还需要更改其配置,即它接受不同的信封 froms。

也可以根据例如来自信封的主机名使用不同的 SMTP 中继,但这必须在 MTA 中进行配置。