0

通常我将 msmtp 安装为本地邮件程序,设置比 postfix/others 容易得多,而且功能非常强大。使用 /etc/msmtprc 中的此内容

defaults
tls_trust_file /etc/ssl/certs/ca-bundle.crt
account default
host smtp.gmail.com
port 587
tls on
auth on
user redacted@example.com
password password
from redacted@example.com
logfile /var/log/msmtp.log
aliases /etc/aliases

我有错误:

CROND[1587]: (ec2-user) MAIL (邮寄了 580 字节的输出但状态为 0x004e#012)

对于应该为 ec2-user 发送电子邮件的所有 cron

使用 mailx 发送工作正常:

echo "TEX" | mailx -s "TEST" redacted@example.com

有关调试此问题的任何提示?我找不到关于我得到的状态码的太多信息

4

1 回答 1

0

回答自己,我找到了一种以详细方式触发错误的方法,基本上你必须使用 sendmail 发送邮件:

echo "From: root \
To: ec2-user \
Subject: Hello World \
\
This is the email body" | sudo sendmail -d -t ec2-user

在错误消息中,我得到了错误解释:

sendmail:/etc/aliases:第 11 行:无效地址 'postmaster'

因为在 /etc/aliases 文件中创建了一些条目(可能它们已经存在于 ec2 映像中),其结构如下:

mailer-daemon: postmaster

由于 postmaster 对 msmtp 没有任何意义,因此它会抛出错误。注释掉这行 (#) 后,邮件正在正常发送

于 2018-06-20T08:58:15.950 回答