我希望能够只输入我域内人员的收件人用户名,并让 mutt 自动为我限定该用户名。也就是说,如果我输入,user1
我希望将其转换为[email protected]
。
我知道在这种情况下use_domain
我可以自动添加的值hostname
,如果我也指定的话,我几乎可以得到我想要的hidden_host
。问题是我的 FQDN 位于子域中,并且hidden_host
没有剥离足够多的内容。例如,如果我的muttrc
包含以下内容:
set hostname='host.sub.example.net'
set use_domain=yes
set hidden_host=yes
然后如果我user1
以收件人身份输入,它将扩展为[email protected]
而不是[email protected]
我希望的。
我想我可以为每个用户创建一个别名,但这很麻烦,而且在添加或更改用户和邮箱时很难保持同步。
有没有办法告诉mutt
我想添加到我输入的不合格名称中的域,或者我应该只是“撒谎”我的hostname
?
答案1
从 2022 年的 Mutt 2.2.8 版开始,您想要的功能尚不存在,但如果您不介意从源代码编译 Mutt,则添加起来相当容易。您需要在分支上进行编辑sendlib.c
和更改:最简单的“破解”就是在那里添加(如果此二进制文件不会与任何其他提供商一起使用)。mutt_fqdn
may_hide_host
return "example.net";
当然,如果您从源代码编译 Mutt,则需要 (a) 确保所有库都可用于您想要的功能(否则您可能会得到一个缺少这些功能的 Mutt)和 (b) 手动更新您想要的任何安全补丁等(因为您的发行版的包管理器将不再为您执行此操作)。它“并不适合所有人”,但话虽如此,Mutt 的编译并不困难。
或者,.muttrc
您可以设置editor
任何您喜欢的程序,包括运行您喜欢的编辑器然后自动更改结果文本文件的脚本,但我不推荐这样做。您需要在标题而不是正文的相应行上查找不合格的电子邮件;如果您知道不合格的地址总是符合某种模式,这可能会更容易,但犯一个错误,您的电子邮件可能会被严重破坏。此外,这种方法不会捕获在 Mutt 自己的提示中输入的地址;它只能捕获在编辑器中输入的地址。我在这里提到“编辑器覆盖”方法只是为了完整性:在大多数情况下,像上面一样自定义 Mutt 本身的源代码会更容易。