如何让msmtp发送本地系统邮件?

装了msmtp后,系统自动卸载了exim4。导致原来通过exim4发送的本地系统邮件(比如sudo输错密码发送的提示邮件)都不再发送了。如何设置能让msmtp接手过来,让系统邮件正常发送到/var/mail/我的用户名?谢谢哈。

补充下:为了让mail连接到msmtp
/etc/mail.rc添加:
set sendmail=“/usr/bin/msmtp”

~/.msmtprc如下:

# Set default values for all following accounts.
defaults
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile ~/.config/msmtp/msmtp.log

account local
host localhost
port 465
from myname@debian
user myname@debian
auth login
tls on

# Set a default account
account default : local

故意sudo输错密码,~/.config/msmtp/msmtp.log确实有更新:

8月 10 16:37:25 host=localhost tls=on auth=on user=linlin@debian from=linlin@debian recipients=root errormsg='cannot connect to localhost, port 465: 拒绝连接' exitcode=EX_TEMPFAIL

说明系统确实调用了msmtp发送邮件,只是卡在msmtprc的端口和其它设置不对,怎么修改?

msmtp 是 SMTP 客户端呀,它没有处理本地邮件的能力吧。可以自己用 Python 写个简单的脚本把邮件存到用户的 mbox 里。

可是exim4也是SMTP客户端,它就可以处理本地邮件啊。这两个不能并存,只能选一个。

exim4 是全功能的 MTA 啊。

bash脚本行不?给个大概思路,多谢哈。

bash 脚本就……也许把邮件转给 procmail 处理也行?总之锁之类的东西有点麻烦,充分了解之前不要自己直接操作 mbox 文件。

哎,知道问题出在哪了。一开始装msmtp就不应该装msmtp-mta,直接装msmtp,这样就既能用msmtp发信,又不会卸载exim4,就没有这些问题了。装msmtp-mta才会自动卸载exim4。

原来是这样。我手头没有 Debian 系统,只能在网页上看,然而网页上没有写冲突关系 (

msmtp - Debian Wiki 有写:
When a standard MTA interface is desired, but a full server like Postfix or Exim is not desired, then the msmtp-mta package can be a solution:

Install the msmtp-mta package.