Raspberry PI - 使用GMAIL smtp服务器从命令行发送邮件

mik*_*kia 6 gmail command-line smtp sendmail raspberry-pi3

如何使用我的Gmail帐户从Raspberry Pi发送电子邮件?

我想从命令行发送邮件,并在我的脚本中使用此方法.

Envirenment:

Hardware: Raspberry PI 3
OS: Jessie
SMTP: smtp.gmail.com
Run Code Online (Sandbox Code Playgroud)

mik*_*kia 19

我在Raspberry Pi 3设备上使用此方法:

Google帐户设置

  1. 登录您的Gmail帐户
  2. 转到:设置 - >帐户和导入 - >其他Google帐户设置
  3. 转到:个人信息和隐私 - >帐户概述
  4. 转至:登录和安全 - >连接应用和网站
  5. 设置选项允许不太安全的应用程序打开

安装SSMTP
sudo apt-get install ssmtp

保存原始配置文件
sudo mv /etc/ssmtp/ssmtp.conf /etc/ssmtp/ssmtp.conf.bak

创建新的conf文件(使用vi或其他一些文本编辑器)
sudo vi /etc/ssmtp/ssmtp.conf

文件内容

root=your_account@gmail.com
mailhub=smtp.gmail.com:587

FromLineOverride=YES
AuthUser=your_account@gmail.com
AuthPass=your_password
UseSTARTTLS=YES
UseTLS=YES

# Debug=Yes
Run Code Online (Sandbox Code Playgroud)

安全的conf文件

sudo groupadd ssmtp
sudo chown :ssmtp /etc/ssmtp/ssmtp.conf
Run Code Online (Sandbox Code Playgroud)

如果您在此步骤中遇到错误,例如"无法访问",则必须找到ssmtp文件并使用该路径:sudo find/-name"ssmtp"

sudo chown :ssmtp /usr/sbin/ssmtp
sudo chmod 640 /etc/ssmtp/ssmtp.conf
sudo chmod g+s /usr/sbin/ssmtp
Run Code Online (Sandbox Code Playgroud)

从(仅一个)命令行发送邮件

echo "This is a test" | ssmtp recipient.address@some_domain.com
Run Code Online (Sandbox Code Playgroud)

要么

printf "To: recipient.address@some_domain.com\nFrom: RaspberryPi3\nSubject: Testing send mail from Raspberry\n\nThis is test. Best Regards!\n" | ssmtp -t
Run Code Online (Sandbox Code Playgroud)

从文件test.txt发送邮件生成
具有类似内容的文件:

To: recipient.address@some_domain.com
From: your_account@gmail.com
Subject: Testing send mail from Raspberry

This is test mail (body)

Best Regards!
Run Code Online (Sandbox Code Playgroud)

现在您可以从文件发送邮件

ssmtp recipient.address@some_domain.com < test.txt
Run Code Online (Sandbox Code Playgroud)

就这样 :)