1

SSMTP 多年来一直在我的 RPi 上工作 - 最新的延伸。现在我迁移到了 buster - 在这一步之后它现在失败了。

$  cat /etc/ssmtp/ssmtp.conf
root=user@mydomain.com
mailhub=smtp.gmail.com:587
hostname=localhost
UseSTARTTLS=YES
AuthUser=user@gmail.com
AuthPass=very_secret
FromLineOverride=YES
$ echo "MailBody"|mail --debug-level=3 -s "My Subject" mailaddress@domain.com
mail: sendmail binary: /usr/sbin/sendmail
mail: source=system, name=user, passwd=x, uid=1001, gid=1000, gecos=user,,,, dir=/home/user, shell=/bin/bash, mailbox=/var/mail/user, quota=0, change_uid=1
mail: source=system, name=user, passwd=x, uid=1001, gid=1000, gecos=user,,,, dir=/home/user, shell=/bin/bash, mailbox=/var/mail/user, quota=0, change_uid=1
mail: mu_mailer_send_message(): using From: user@localhost
mail: Sending headers...
mail: Sending body...
mail: /usr/sbin/sendmail exited with: 1
mail: progmailer error: Process exited with a non-zero status
mail: cannot send message: Process exited with a non-zero status
mail: source=system, name=user, passwd=x, uid=1001, gid=1000, gecos=user,,,, dir=/home/user, shell=/bin/bash, mailbox=/var/mail/user, quota=0, change_uid=1

$ echo $?
36

我有很多 shell 脚本使用以下命令发送邮件:

echo "MailBody"|mail -s "My Subject" emailaddress@domain.com

=> 因此,如果不再支持 SSMTP,我将需要遵循该语法的解决方案...

谢谢你的帮助!

4

1 回答 1

0

我通过从 ssmtp(一些消息来源说未维护)切换到msmtphttps://wiki.debian.org/msmtp)来解决这个问题。

这可能适用于您,也可能不适用于您,请尝试通过直接发送电子邮件来检查错误代码/usr/sbin/ssmtp -v ....,我有退出 36(echo $?获取代码)。

如果您处于类似情况并想尝试 msmtp,请按照以下步骤操作:

安装:

$ sudo apt remove ssmtp
$ sudo apt install msmtp msmtp-mta

配置(我没有配置 GMail,我使用Dreamhost电子邮件服务,所以您的详细信息可能会有所不同):

$ cat /etc/msmtprc 
# Set default values for all following accounts.
defaults
auth           on
tls            on
tls_starttls   off
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile        /tmp/msmtp.log

# Raspberry Pi
account        rasp
host           smtp.dreamhost.com
port           465
from           raspberry@<REDACTED>
user           raspberry@<REDACTED>
password       <PLAINTEXTPASSWORD>

# default account
account default : rasp

为了比较,这是我的/etc/ssmtp.conf文件:

root=postmaster
mailhub=smtp.dreamhost.com:465
AuthUser=raspberry@<REDACTED>
AuthPass=<REDACTED>
UseTLS=YES
UseSTARTTLS=YES
TLS_CA-File=/etc/ssl/certs/ca-certificates.crt
hostname=<REDACTED>.org
FromLineOverride=NO

将 msmtp 设置为默认 MTA。我已将最后一行添加到我的 mail.rc 文件中:

$ cat /etc/mail.rc
set ask askcc append dot save crt
ignore Received Message-Id Resent-Message-Id Status Mail-From Return-Path Via Delivered-To
set mta=/usr/bin/msmtp

[注意]:msmtp 还有一个问题,它不会自动填充消息中的“发件人:”标头,因此电子邮件被拒绝,要修复它,调用时mail请确保手动执行:

echo TEST | mail -a "From: raspberry@<REDACTED>" --debug-level 10 -s '[rasp] server' <REDACTED>@gmail.com

这使我在 Debian buster/sid 上的 Raspberry Pi 再次发送电子邮件。

于 2021-11-08T21:58:13.760 回答