0%

使用linux发送gmail

前言

有时候我们可能需要对服务器进行监控,一开始我是打算使用短信 api 的,但是国内的两家云服务商,一家需要资质,一家要钱。而且我根本用不到这么多,所以不值得付出这么高的代价。关于为什么不自建邮局,那是因为确实用不到这么多的量,而且也没找到自己满意的邮局程序。

发送邮件我使用的 smtp,邮箱用的 gmail。注意哦要想使用 smtp 发送 gmail 邮件,需要在账号安全里允许不安全应用访问。

本次演示基于 debian 理论上适合于所有 linux 发行版

安装

发送邮件的软件我使用的是 msmtp。接着来就开始正式安装了。

更新软件源

sudo apt update

安装 msmtp 以及 TLS 证书,TLS 证书一般是默认安装了的,不过为了方便演示还是写上了

sudo apt install msmtp ca-certificates

创建 msmtp 配置文件,~/.msmtprc 并写入以下内容。注意!需要将 form user passwd 这几个字段后面的信息替换为你自己的账号信息。

# Set default values for all following accounts.
defaults
auth           on
tls            on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile        ~/.msmtp.log

# Gmail
account        gmail
host           smtp.gmail.com
port           587
from           [email protected]
user           [email protected]
password       plain-text-password

# Set a default account
account default : gmail

因为我们在 ~/.msmtprc 写入了我们的账号信息,为了保护我们的隐私,我们赋予它 600 权限,不保护是不行的,因为保护 msmtp 会报错

chmod 600 ~/.msmtprc`

然后就可以开始发送邮件了

使用 echo 配合管道符发送邮件

echo "from shell" | msmtp -a default [email protected]

或者编辑好文本后打印进去

cat test.mail | msmtp -a default [email protected]

注意

如果发现登录失败的话很有可能是,google 账号管理,没有打开不安全应用访问。

如果无法给QQ邮箱发送邮件多半是因为QQ邮箱屏蔽了gmail

参考

https://wiki.archlinux.org/index.php/msmtp#Issues_with_TLS