如何使用 ssmtp 向 Gmail 帐户发送邮件

seb*_*elk 4 ssl ssmtp gmail

我有以下 ssmtp.conf 文件:

root=test@gmail.com
mailhub=smtp.gmail.com:587
hostname=ed424cef9b52
UseTLS=Yes
UseStartTTLS=Yes
AuthMethod=LOGIN
AuthUser=test
AuthPass=test
FromLineOverride=yes
TLS_CA_File=/etc/ssl/certs/ca-certificates.crt
Run Code Online (Sandbox Code Playgroud)

我可以连接到 587 gmail 端口:

telnet smtp.gmail.com 587
Trying 64.233.186.109...
Connected to gmail-smtp-msa.l.google.com.
Run Code Online (Sandbox Code Playgroud)

但是当我尝试发送邮件时:

/usr/sbin/ssmtp -v test@gmail.com < qq
ssmtp: Cannot open smtp.gmail.com:587

echo test | mailx  -s "testing ssmtp setup" test@gmail.com
send-mail: Cannot open smtp.gmail.com:587
Can't send mail: sendmail process failed with error code 1
Run Code Online (Sandbox Code Playgroud)

SDs*_*lar 5

正确的端口是 465

使用 gmail 从命令行发送带有图像附件的邮件的最简单方法?


摘抄:

使用以下命令安装 ssmtp:

sudo apt-get update
sudo apt-get install ssmtp
Run Code Online (Sandbox Code Playgroud)

然后进入 /etc/ssmtp 并编辑 ssmtp.conf 看起来像这样:

root=rpi3abc@gmail.com
mailhub=smtp.gmail.com:465
FromLineOverride=YES
AuthUser=rpi3abc@gmail.com
AuthPass=testing123
UseTLS=YES
Run Code Online (Sandbox Code Playgroud)

像这样发送单行:

echo "Testing...1...2...3" | ssmtp myusername@gmail.com
Run Code Online (Sandbox Code Playgroud)

发送一个格式化的文本文件,如下所示:

cat mymessage | ssmtp myusername@gmail.com
Run Code Online (Sandbox Code Playgroud)

可以将 mymessage 格式化为包含 TO: 和 SUBJECT: 以及正文的行。

TO: abc@def.com
SUBJECT: Testing
     -blank line-
Message body goes here....
Run Code Online (Sandbox Code Playgroud)

  • 我得到: ssmtp: 授权失败 (534 5.7.9 https://support.google.com/mail/?p=InvalidSecondFactor s3sm1189087qkj.118 - gsmtp) 这是因为谷歌打开了双因素身份验证吗? (3认同)
  • 已修复:/sf/ask/1871524371/ (2认同)