Raspberry 4 ส่งอีเมลจาก commandline

Sep 28 2020

ฉันได้สร้าง crontab สำหรับการสำรองฐานข้อมูล SQL และข้อมูล WWW โดยอัตโนมัติ

ตอนนี้ฉันต้องการให้ผลลัพธ์ของ crontab ส่งถึงฉันโดยอัตโนมัติทางอีเมล ผลลัพธ์ของ crontab ถูกสร้างขึ้นอย่างประสบความสำเร็จ

ฉันได้ติดตั้งสองแพ็คเกจ

sudo apt-get install ssmtp
sudo apt-get install mailutils

และแก้ไข:

sudo nano /etc/ssmtp/ssmtp.conf

และในการตั้งค่า Gmail ได้สร้างการยืนยันแบบ 2 ขั้นตอนและเพิ่ม App-Pass

TLS_CA_FILE=/etc/ssl/certs/gmail.crt [email protected]
mailhub=smtp.gmail.com:587 rewriteDomain=gmail.com hostname=gmail.com
FromLineOverride=YES [email protected]
AuthPass=oawprowcvxuwlsws UseTLS=Yes UseSTARTTLS=YES

เพิ่มผู้ใช้ใน

sudo nano /etc/ssmtp/revaliases


root:[email protected]:smtp.gmail.com:587
www-data:[email protected]:smtp.gmail.com:587
pi:[email protected]:smtp.gmail.com:587

สร้างใบรับรองแล้ว

sudo openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out /etc/ssl/certs/gmail.crt -keyout /etc/ssl/certs/gmail.key

ทดสอบ ssmtp ด้วย

ssmtp -v [email protected]

ผลลัพธ์คือ:

[<-] 220 smtp.gmail.com ESMTP r8sm2599022edy.87 - gsmtp 
[->] EHLO gmail.com 
[<-] 250 SMTPUTF8 
[->] STARTTLS 
[<-] 220 2.0.0 Ready to start TLS 
[->] EHLO gmail.com 
[<-] ssmtp: (gmail.com)

ตอนนี้ลองส่งอีเมลจาก commandline

echo "Hello world email body" | mail -s "Test Subject" [email protected]



mail: cannot send message: process exited with a non-zero status

ในไฟล์บันทึกของฉัน/etc/log/mail.log

Sep 25 23:19:40 raspberrypi sSMTP[11592]: Unable to set
TLS_CA_FILE="/etc/ssl/certs/gmail.crt" Sep 25 23:19:40 raspberrypi
sSMTP[11592]: Creating SSL connection to host Sep 25 23:19:41
raspberrypi sSMTP[11592]: SSL connection using
ECDHE_RSA_AES_256_GCM_SHA384 Sep 25 23:19:41 raspberrypi sSMTP[11592]:
(gmail.com)

ขาดหรือผิดพลาดประการใด

คำตอบ

1 Milliways Sep 28 2020 at 20:33

ssmtp เลิกใช้งานแล้วใน Buster

ดู https://raspberrypi.stackexchange.com/a/100704/8697 สำหรับทางเลือก

หมายเหตุการกำหนดค่าแตกต่างกัน