如何设置ssmtp和发送电子邮件?


10

我是树莓派的新手。

我在上面安装了raspian OS。我想使用我的Gmail帐户从中发送电子邮件。我想从命令行界面和php脚本发送。

我遵循了本指南。 http://iqjar.com/jar/sending-emails-from-the-raspberry-pi/

我从链接执行了步骤1,2,3,4。

当我使用以下代码发送电子邮件时,使用

echo "Test text" | mail -s "Test Mail" me2@gmail.com

什么也没发生,屏幕上没有任何打印,我也没有收到电子邮件。

在“ revaliases”上,如果我将“ mail.google”替换为“ smtp.gmail”,那么我会收到一条消息,说

send-mail: Cannot open mail.google.com:587

要么

send-mail: Server didn't like our AUTH LOGIN (530 5.7.0 Must issue a STARTTLS command first. ml2sm3592928igb.10 - gsmtp)

有谁知道如何解决这一问题?谢谢

以下是两个文件:

ssmtp.conf

#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
# root=postmaster

# The place where the mail goes. The actual machine name is required no 
# MX records are consulted. Commonly mailhosts are named mail.domain.com
# mailhub=mail

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
hostname=raspberrypi

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=YES


root=me@gmail.com
mailhub=smtp.gmail.com:587
AuthUser=me@gmail.com
AuthPass=mypass
UseSTARTTLS=YES

重制

# sSMTP aliases
# 
# Format:   local_account:outgoing_address:mailhub
#
# Example: root:your_login@your.domain:mailhub.your.domain[:port]
# where [:port] is an optional port number that defaults to 25.

root:me@gmail.com:mail.google.com:587

2
这不是特定的Raspberry问题,请尝试:-unix.stackexchange.com
Milliways 2013年

看看它raspberry.znix.com/2013/03/postfix-better-solution-for-rpi.html。另外,如果您在Google上使用2factor auth,则需要使用应用专用密码,而不是用于通过网络登录gmail的密码。
史蒂夫·罗比拉德

如何获取应用专用密码?
omega

你尝试过UseSTARTTLS=NO吗?
goldilocks

是的,但是仍然没有用。
omega

Answers:


4

您可能现在已经知道了,但是我在您的ssmtp.conf文件中注意到,您有:root=me@gmail.com

但是,在您发布的链接中显示为:root = postmaster

我就这样离开了,只是更改了其他me@gmail.com零件,它对我有用。不过感谢您的帮助,这让我一路顺风。


2

实际上,您不需要安装任何东西。Exim已经安装在Raspbian上,但默认情况下已配置为保持本地状态。您只需要更改文件“ update-exim4.conf.conf”,“ dc_eximconfig_configtype ='satellite'等”。



1

我认为您正在寻找:

/unix/363814/simplest-way-to-send-one-line-mail-out-via-command-line-using-gmail

摘抄:

发送单行消息的答案是使用ssmtp

使用以下命令安装它:

sudo apt-get update
sudo apt-get install ssmtp

然后进入/ etc / ssmtp并编辑ssmtp.conf,如下所示:

root=rpi3abc@gmail
mailhub=smtp.gmail.com:465
FromLineOverride=YES
AuthUser=rpi3abc@gmail.com
AuthPass=testing123
UseTLS=YES

发送这样的单线:

echo "Testing...1...2...3" | ssmtp myusername@gmail.com

您还可以整理整个文件并将其作为消息传递到管道中。


如果要发送图像文件作为附件,则需要以下附件:

/unix/381131/simplest-way-to-send-mail-with-image-attachment-from-command-line-using-gmail

基本上相同,但是添加:

安装mpack:

apt-get update
sudo apt-get install mpack

然后将图像作为附件发送,如下所示:

mpack -s "P&L Proj 2018" /home/pi/Desktop/finance/PL18.png importantdude@gmail.com

如果文件在当前目录中,则不必使用附件的标准路径。

而且,如果在cron中使用,请记住作业始终在用户的主目录中运行,因此,最好使用附件目录的完整目录路径。

瞧 而已。再简单不过了。

它可以在Raspbian和所有更高版本的Ubuntu上运行。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.