Благодаря ответу 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 user@example.com
user user@example.com
password correct-horse-battery-staple
account example2
host smtp.example2.net
port 587
auth on
from user2@example2.net
user user2@example2.net
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 = 'user@example.com'
alternates '(user@example.com)|(user2@example2.net)'
macro compose 1 'f^UUser '
macro compose 2 'f^UUser2 '
send2-hook '~e user2@example2.net' "set sendmail = '/usr/bin/msmtp -a example2'"
...
С помощью макросов я могу выбирать исходящий адрес на экране составления письма, вводя
, где #
- номер нужного мне адреса.
т.е.
для user@example.com
для user2@example2.net
С помощью строки send-hook2
mutt проверит, совпадает ли адрес Sender
с user2@example2.net
.
Когда это произойдет, msmtp
будет вызван с флагом -a example2
, и в этот момент он будет использовать конфигурацию учетной записи example2
вместо конфигурации по умолчанию.