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" [email protected]

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


[email protected]
mailhub=smtp.gmail.com:587
[email protected]
AuthPass=mypass
UseSTARTTLS=YES

revaliases

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

root:[email protected]:mail.google.com:587
oméga
la source
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: [email protected]

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 [email protected] et ça marche pour moi. Merci pour votre aide, cela m'a mis sur le chemin ...

Dave
la source
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."

Oliver T.
la source
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

Gianluca Ghettini
la source
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
[email protected]
AuthPass=testing123
UseTLS=YES

Envoyez un one-liner comme ceci:

echo "Testing...1...2...3" | ssmtp [email protected]

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 [email protected]

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.

SDsolar
la source