Table des matières

, , , , ,

Comment envoyer un courriel par smtp en ligne de commande 

Utilisation de msmtp

Installation

Installez le paquet msmtp.

Si vous aviez déjà installé des paquets désormais inutiles, un petit rappel sur la suppression d'un paquet.

Ce tutoriel se base sur l'utilisation de msmtp. Il existe bien sûr d'autres solutions pour envoyer des courriels en ligne de commande. ssmtp propose les mêmes fonctionnalités en se basant sur un fichier de configuration très semblable, par exemple.

Configuration

Ne pas utiliser de commande sudo. C'est bien l'utilisateur qui envoie les mails.
nano ~/.msmtprc
account default
host smtp.monfai.fr
from prenom.nom@monfai.fr
auth off
#auth on
#si jamais auth off ne passe pas
user prenom.nom
#si votre fai vous identifie plus clairement si vous reprécisez le domaine, alors plutôt cela :
#user prenom.nom@fai.fr
password monmotdepasse
chmod 600 ~/.msmtprc
Configurations spécifiques (en fin de tuto)
Remarques :
  • la configuration de msmtp peut être beaucoup plus pointue, man et documentation peuvent vous aider.

il suffit de rajouter une ligne account NomDuCompte suivi de la configuration propre à ce compte.

exemple:

account celuidelaposte
host smtp.laposte.net
from user@laposte.net
tls on
tls_certcheck off
tls_starttls off
auth on
user user@laposte.net
password motdepasse

Pour utiliser un compte plutôt que celui par défaut (default), on utilisera l'option -a:

echo "bonjour, je viens d'un autre compte" | msmtp -a celuidelaposte toto@univers.net

Utilisation

cat readme.txt | msmtp johnny@liday.ch
uuencode application.zip | msmtp johnny@liday.ch
Pour préciser le sujet du mail, il faut utiliser Subject:DeQuoiOnParle en tête de message. Donc si on envoie un fichier readme.txt, à moins qu'il commence par Subject:… le message n'aura pas de sujet

Attention: il faut alors un saut de ligne; une solution simple est d'utiliser printf plutôt que echo. Exemple:

printf "Subject:DeQuoiOnParle\nLeCorpsDuMessage" | msmtp johnny@liday.ch
Ne pas oublier les tags ci dessous en début de votre message électronique sans quoi il ne sera pas forcement accepté par gmail ou autre (non respect de la RFC2822)
 From: mon-adresse@domaine.xx
 To: adresse-destination@domaine.xx
 subject: le sujet de l'Email
 
 le corps du texte commence à cette ligne (laisser une ligne blanche)

Vérification

Configurations particulières

gmail

gmail impose l'utilisation d'une couche TLS. La configuration doit le prendre en compte de cette façon :

~/.msmtprc
account default
tls on
host smtp.gmail.com
port 587
from nom_user@gmail.com
auth on
user nom_user
password password_user
tls_starttls on
tls_certcheck on
tls_trust_file /etc/ssl/certs/ca-certificates.crt

La dernière ligne est spécifique aux systèmes basés sur debian. Elle pointe vers le fichier où sont stockés l'ensemble des certificats racine de conficance du système (cf : manuel)

gmail - non sécurisé

Il est aussi tout simplement possible de ne pas vérifier le certificat serveur est désactivant tls_certcheck. Ceci est non-recommandé car sensible à une attaque de type MiM

~/.msmtprc
account default
tls on
host smtp.gmail.com
port 587
from nom_user@gmail.com
auth on
user nom_user
password password_user
tls_starttls off
tls_certcheck off

Orange sécurisé

L'opérateur historique Orange fonctionne avec TLS de la façon suivante (20/11/2015):

~/.msmtprc
account default
host smtp.orange.fr
protocol smtp
auth login
tls on
tls_starttls off
tls_certcheck on 
tls_trust_file /etc/ssl/certs/ca-certificates.crt
from mon-adresse@orange.fr
maildomain orange.fr
port 465
user mon-adresse
password mon-motdepasse

gandi.net

Paramétrage pour l’utilisation de l'adresse fournie avec les noms de domaines achetés avec gandi.net

~/.msmtprc
account default
host mail.gandi.net
from <adresse de l'émetteur>
tls on
tls_certcheck off
tls_starttls off
auth on
user <adresse Gandi/nom d'utilisateur utilisé pour se connecter à la boîte aux lettres électronique Gandi>
password <mot de passe boîte aux lettres électronique>

Free

Paramétrage utilisé pour la messagerie Free (testé février 2023 sur Ubuntu Server 22.04)

~/.msmtprc
account default
host smtp.free.fr
from <adressemail>@free.fr
auto_from off
add_missing_from_header on
auth on
port 587
user <adressemail>@free.fr
password <mot_de_passe>
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt

Références


Contributeurs : kerkael création de la page le 21/08/2009, simtris MAJ de la configuration de Gmail le 17/05/2010