安装msmtp后如何使用mail命令向root发送电子邮件?

安装msmtp后如何使用mail命令向root发送电子邮件?

安装一个简单的 SMTP 客户端:

sudo apt install msmtp  msmtp-mda

在 msmtprc 中设置::

cat   .msmtprc
account default
host smtp.qq.com
from [email protected]
auth on
tls on
tls_certcheck off
user [email protected]
password  xxxx
logfile ~/.msmtp.log

我可以用qq账号发邮件。

echo "Testing msmtp " | mail -s "hi root" -r [email protected]   -- [email protected]

该电子邮件可以在雅虎电子邮件中找到。
我发现一个新问题,用户无法向系统中的 root 发送电子邮件!

echo "cron task work done " | mail -s "hi root" root
mail: cannot send message: Process exited with a non-zero status

检查日志:

Aug 24 20:47:31 host=smtp.qq.com tls=on auth=on [email protected] [email protected] [email protected] smtpstatus=501 smtpmsg='501 Mail from address must be same as authorization user.' errormsg='envelope from address [email protected] not accepted by the server' exitcode=EX_DATAERR

echo "cron task work done " | mail -s "hi root" -r [email protected]  root

日志信息:

Aug 29 06:56:39 host=smtp.qq.com tls=on auth=on [email protected] [email protected] [email protected] smtpstatus=501 smtpmsg='501 Mail from address must be same as authorization user.' errormsg='envelope from address [email protected] not accepted by the server' exitcode=EX_DATAERR

每次调用邮件命令时,它都会中继到外部主机 smtp.qq.com,即使我指定返回主机为[电子邮件受保护],如何让mail命令在系统中的用户和root之间发送电子邮件?我发现安装 msmtp-mda 时 postfix 或 exim4 将被删除,这一事实可能与我的问题有关。

答案1

您已经安装了一个简单的转发邮件服务器 ( msmtp)。这是包说明来自 Debian

软件包:msmtp (1.8.23-1)

支持服务器配置文件的轻型 SMTP 客户端

msmtp是一个 SMTP 客户端,可用于从 Mutt 以及其他可能的 MUA(邮件用户代理)发送邮件。它将邮件转发到 SMTP 服务器(例如免费邮件提供商),由该服务器负责最终投递。使用配置文件,可以轻松地将其配置为使用具有不同配置的不同 SMTP 服务器,这使其成为移动客户端的理想选择。

这里相关的一点是,“将邮件转发到 SMTP 服务器 [...],由该服务器负责最终投递”。

这意味着msmtp您只能将电子邮件转发到您的远程邮件服务器;您无法在本地交付。如果您想这样做,请安装 Exim、Postfix、Sendmail 或其他功能齐全的 MTA(邮件传输代理)之一。

相关内容