Comment configurer ssmtp et envoyer des e-mails?


10

Je suis nouveau sur Raspberry Pi.

J'ai installé l'OS raspian dessus. Je veux en envoyer des e-mails à l'aide de mon compte gmail. Je veux envoyer à partir de l'interface de ligne de commande et des scripts php.

J'ai suivi ce guide. http://iqjar.com/jar/sending-emails-from-the-raspberry-pi/

J'ai fait les étapes 1, 2, 3, 4 du lien.

Lorsque j'envoie un e-mail en utilisant le code ci-dessous en utilisant

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

rien ne se passe, il n'y a rien d'imprimé sur l'écran et je ne reçois pas l'email.

Sur "revaliases", si je remplace "mail.google" par "smtp.gmail", alors je reçois un message disant

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

ou

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

Est-ce que quelqu'un sait comment réparer ceci? Merci

Voici les deux fichiers ci-dessous:

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

revaliases

# 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
Ce n'est pas une question spécifique sur la framboise, essayez: - unix.stackexchange.com
Milliways

jetez un oeil à cela, il raspberry.znix.com/2013/03/postfix-better-solution-for-rpi.html . De plus, si vous utilisez l'authentification 2factor avec Google, vous devez utiliser un mot de passe spécifique à l'application et non le mot de passe que vous utilisez pour vous connecter à Gmail sur le Web.
Steve Robillard

Comment obtenir le mot de passe spécifique à l'application ??
Omega

Avez-vous essayé avec UseSTARTTLS=NO?
goldilocks

oui, mais ça n'a toujours pas fonctionné.
Omega

Réponses:


4

Vous l'avez probablement compris maintenant, mais j'ai remarqué que dans votre fichier ssmtp.conf, vous avez: root=me@gmail.com

Cependant, dans le lien que vous avez publié, il est indiqué: root = postmaster

Je l'ai laissé comme ça et j'ai juste changé les autres pièces me@gmail.com et ça marche pour moi. Merci pour votre aide, cela m'a mis sur le chemin ...


2

En fait, vous n'avez rien à installer. Exim est déjà installé sur Raspbian, mais il est configuré par défaut pour rester local. Il suffit de changer le fichier "update-exim4.conf.conf" "dc_eximconfig_configtype = 'satellite' etc."


1

J'ai eu le même problème.

Il s'est avéré que gmail a bloqué la demande parce que le client smtp est sur liste noire comme non sécurisé (c'est probablement l'un des clients affectés par le bug heartbleed )

Vous pouvez autoriser les clients moins sécurisés sur vos paramètres Gmail ici: https://support.google.com/accounts/answer/6010255?hl=en

ou, mieux encore, passez à une version plus récente du client smtp, si possible


1

Je pense que vous cherchez ceci:

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

EXTRAIT:

La réponse à l'envoi de messages sur une ligne consiste à utiliser ssmtp

Installez-le avec les commandes suivantes:

sudo apt-get update
sudo apt-get install ssmtp

Ensuite, allez dans / etc / ssmtp et éditez ssmtp.conf pour ressembler à ceci:

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

Envoyez un one-liner comme ceci:

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

Vous pouvez également récupérer un fichier entier et le canaliser en tant que message.


Si vous souhaitez envoyer des fichiers image en tant que pièces jointes, vous souhaitez celui-ci:

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

C'est fondamentalement la même chose, mais ajoute:

Installez mpack:

apt-get update
sudo apt-get install mpack

Envoyez ensuite une image en pièce jointe comme ceci:

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

Si le fichier se trouve dans le répertoire en cours, il n'est pas nécessaire d'utiliser un chemin d'accès complet à la pièce jointe.

Et si utilisé dans cron, n'oubliez pas que les travaux s'exécutent toujours dans le répertoire personnel de l'utilisateur, il est donc recommandé d'utiliser un chemin de répertoire complet vers le fichier joint.

Voila. C'est ça. Rien de plus simple.

Il fonctionne à la fois sur Raspbian et toutes les versions ultérieures d'Ubuntu.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.