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,我会按照该语法提供解决方案......
感谢您的任何帮助!
我通过从ssmtp(一些消息来源说它未维护(切换到msmtp(https://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 上工作。