我想将 mutt 与多个帐户一起使用。我想使用不同的 smtp 服务器通过 ssmtp 发送电子邮件。一份由公司提供的内部邮件(支持 imap),一份用于我的私人电子邮件(gmail)。
答案1
至少在mutt 1.5中,你可以使用send2-hook
根据每条消息的发件人地址更改配置值。从文档中:
send2-hook
在 后执行send-hook
,并且可以用于根据消息的发件人地址设置参数,例如 $sendmail 变量。
虽然我自己没有尝试过,但听起来你提到的 ssmtp 和 getmail 从 Gmail 帐户下载邮件的组合应该效果很好。您可能还想加入 procmail 来进行客户端邮件排序。
为了更轻松地处理多个发件人地址,我自己在我的 mutt 配置中有以下内容:
alias f__1 Me <[email protected]>
alias f__2 Myself <[email protected]>
alias f__3 I <[email protected]>
macro compose <esc>f "<edit-from><kill-line>f__<tab><search>[email protected]<enter>"
完成此操作后,我只需点击escape f
撰写屏幕即可更改发件人地址,它默认为我最常使用的地址。部分出于历史原因,我使用文件夹挂钩来设置$smtp_url
,但从文档的声音来看,使用它应该很简单send2-hook
。
我拥有的一件事不是发现一个简单的处理方法是签名。您可以使用文件夹挂钩在每个文件夹的基础上设置 $signature 的值,但这大约是我能够(或更准确地说,不厌其烦)获得的最接近的值。
答案2
感谢 Michael Kjörling 的回答,我能够从多个帐户发送我的 Mutt,每个帐户都有自己的 SMTP 配置。
首先是msmtp
配置。这里没有什么特别的,只是按照他们的要求设置了两个帐户文档。
$ cat .msmtprc
defaults
tls on
tls_trust_file [redacted]
logfile [redacted]
domain serverdomainexample.tech
account example
host smtp.example.com
port 587
auth on
from [email protected]
user [email protected]
password correct-horse-battery-staple
account example2
host smtp.example2.net
port 587
auth on
from [email protected]
user [email protected]
password correct-horse-battery-staple-2
account default : example
接下来,mutt
配置。
$ cat .mutt/muttrc
...
set sendmail = '/usr/bin/msmtp'
set realname = 'User'
set use_from = 'yes'
set envelope_from = 'yes'
set from = '[email protected]'
alternates '([email protected])|([email protected])'
macro compose <esc>1 '<esc>f^UUser <[email protected]><enter>'
macro compose <esc>2 '<esc>f^UUser2 <[email protected]><enter>'
send2-hook '~e [email protected]' "set sendmail = '/usr/bin/msmtp -a example2'"
...
使用宏,我可以在邮件撰写屏幕上输入 来选择我的发送地址<esc>+#
,其中#
是我想要的地址的号码。
即
<esc>+1
对于[email protected]
<esc>+2
对于[email protected]
通过该send-hook2
行,mutt 将检查Sender
地址是否匹配[email protected]
。
当它执行时,msmtp
将使用该标志调用-a example2
,此时它将使用example2
帐户配置而不是默认配置。