Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tutoriel:comment_envoyer_un_mail_par_smtp_en_ligne_de_commande [Le 21/08/2009, 20:18]
kerkael
tutoriel:comment_envoyer_un_mail_par_smtp_en_ligne_de_commande [Le 17/02/2023, 16:15] (Version actuelle)
84.14.209.116 [Configurations particulières]
Ligne 1: Ligne 1:
-{{tag>8.10 intrepid ​réseau internet ​mail tutoriel ​brouillon}} +{{tag>Xenial ​réseau internet ​courriel ​tutoriel ​BROUILLON}} 
-====== Comment envoyer un mail par SMTP en ligne de commande ​====== + 
-====== Et envoyer ​l'IP de sa box automatiquement ====== +---- 
-===== Comment envoyer un mail par SMTP en ligne de commande ​=====+ 
 +====== Comment envoyer un courriel ​par smtp en ligne de commande  ​====== 
 +  * Il n'est pas nécessaire de surcharger son système d'​applications serveur pour l'​envoi de courriel. La solution la plus simple est l'​utilisation d'un client smtp. 
 +  * Envoyer automatiquement des informations par courriel peut être utile, par exemple, pour récupérer ​l'​IP ​externe ​de sa box. Voir le tuto [[tutoriel:​Comment_envoyer_l_IP_de_sa_box_automatiquement_par_courriel]]. 
 +===== Utilisation ​de msmtp =====
 ==== Installation ==== ==== Installation ====
-[[:​tutoriel:​comment_installer_un_paquet|Installez ​les paquets]] **[[apt://​msmtp|msmtp]]**.+ 
 +[[:​tutoriel:​comment_installer_un_paquet|Installez ​le paquet]] **[[apt://​msmtp|msmtp]]**.
  
 Si vous aviez déjà installé des paquets désormais inutiles, un petit rappel sur [[:​tutoriel:​comment_supprimer_un_paquet|la suppression d'un paquet]]. Si vous aviez déjà installé des paquets désormais inutiles, un petit rappel sur [[:​tutoriel:​comment_supprimer_un_paquet|la suppression d'un paquet]].
 +
 +<​note>​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.</​note>​
  
 ==== Configuration ==== ==== Configuration ====
-  ​* [[:​tutoriel:​comment_editer_un_fichier|Editer/​créer ​le fichier]].msmtp dans le home directory, depuis son propre compte.+ 
 +  ​* [[:​tutoriel:​comment_modifier_un_fichier|Créez et ouvrez ​le fichier]] ​**~/.msmtprc** (dans votre dossier personnel). 
 <note important>​Ne pas utiliser de commande sudo. C'est bien l'​utilisateur qui envoie les mails.</​note>​ <note important>​Ne pas utiliser de commande sudo. C'est bien l'​utilisateur qui envoie les mails.</​note>​
-<file>nano .msmtp</file>+<code bash>​nano ​~/.msmtprc</code>
   account default   account default
   host smtp.monfai.fr   host smtp.monfai.fr
Ligne 24: Ligne 33:
  
   * Dissimuler ce fichier qui contient votre mot de passe en clair   * Dissimuler ce fichier qui contient votre mot de passe en clair
-<file>chmod 600 .msmtp</​file>​+<code bash>chmod 600 ~/.msmtprc</​code>​ 
 +== Configurations spécifiques (en fin de tuto) == 
 +<​note>​ 
 +**Remarques :** 
 +  * la configuration de msmtp peut être beaucoup plus pointue, //man// et //​documentation//​ peuvent vous aider. 
 +</note> 
 +  * Pour avoir plusiers comptes configurés:​ 
 +  il suffit de rajouter une ligne account //​NomDuCompte//​ suivi de la configuration propre à ce compte. 
 +  
 +__exemple__:​ 
 + 
 +<file> 
 +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 
 +</​file>​ 
 + 
 +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//​ 
 + 
 +  * fichier .msmtprc pour [[tutoriel:​comment_envoyer_un_mail_par_smtp_en_ligne_de_commande#​gmail|gmail]]. 
 ==== Utilisation ==== ==== Utilisation ====
   * Pour envoyer le contenu d'un fichier texte comme message:   * Pour envoyer le contenu d'un fichier texte comme message:
-<file>cat readme.txt | msmtp johnny@liday.ch</​file>+<code bash>cat readme.txt | msmtp johnny@liday.ch</​code>
   * Pour envoyer un fichier binaire, ou compressé en pièce jointe :   * Pour envoyer un fichier binaire, ou compressé en pièce jointe :
-<file>​uuencode application.zip | msmtp johnny@liday.ch</​file>+<code bash>​uuencode application.zip | msmtp johnny@liday.ch</​code> 
 +<note tip>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: <code bash>​printf "​Subject:​DeQuoiOnParle\nLeCorpsDuMessage"​ | msmtp johnny@liday.ch</​code></​note>​ 
 + 
 +<note important>​Ne pas oublier les tags ci dessous en début de votre message électronique sans quoi il ne sera pas forcement accepté par [[http://​mail.google.com|gmail]] ou autre (non respect de la RFC2822)</​note>​ 
 +   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 ==== ==== Vérification ====
   * Depuis votre client de messagerie, vérifiez que vous avez bien reçu le message attendu   * Depuis votre client de messagerie, vérifiez que vous avez bien reçu le message attendu
  
  
----- 
  
 +==== Configurations particulières ====
 +=== gmail ===
 +[[http://​mail.google.com|gmail]] impose l'​utilisation d'une couche [[wpfr>​Transport_Layer_Security|TLS]]. La configuration doit le prendre en compte de cette façon : 
  
-====== Envoyer l'IP de sa box automatiquement ======+<​file>​~/​.msmtprc</​file>​ 
 +  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
  
-===== Installation ===== +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 : [[http://​msmtp.sourceforge.net/​doc/​msmtp.html|manuel]]) 
-S'il vous manque GET [[:​tutoriel:​comment_installer_un_paquet|installez ​le paquet]] **[[apt://GET|GET]]**+=== 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 [[wpfr>​Attaque_de_l'​homme_du_milieu|MiM]]
  
-===== Récupérer l'IP externe de sa box ===== +<​file>​~/.msmtprc</​file>​ 
-<​file>​GET whatismyip.org</​file>​ +  ​account default 
-  ​* Cette commande renvoie des erreurs une fois sur deux, donc on va la lancer 2 ou 3 fois dans un script et récupérer l'IP dans un fichier. +  tls on 
-<​file>​nano getip</​file>​ +  ​host smtp.gmail.com 
-  ​GET whatismyip.org > .myip +  ​port 587 
-  ​echo ""​ >> ​.myip +  from nom_user@gmail.com 
-  ​sleep 1 +  ​auth on 
-  ​GET whatismyip.org >> .myip +  ​user nom_user 
-  ​echo ""​ >> .myip +  ​password password_user 
-  ​sleep 1 +  ​tls_starttls off 
-  ​GET whatismyip.org >> .myip +  ​tls_certcheck off 
-  ​echo "" ​>> .myip+  ​ 
 +=== Orange sécurisé === 
 +L'​opérateur historique Orange fonctionne avec [[wpfr>Transport_Layer_Security|TLS]] de la façon suivante (20/​11/​2015):​
  
-<​file>​cat .myip</​file>​ +<​file>​~/.msmtprc</​file>​ 
-  ​92.122.18.135 +  ​account default 
-  ​92.122.18.135 +  host smtp.orange.fr 
-  ​92.122.18.135+  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
  
-===== Envoyer son IP de box à son courriel au bureau ===== +=== gandi.net ​=== 
-  * On a vu cela juste avant : +Paramétrage pour l’utilisation de l'​adresse fournie avec les noms de domaines achetés avec gandi.net 
-<​file>​cat .myip | msmtp johnny@whitehouse.gov</​file>​ +<​file>​~/.msmtprc</​file>​ 
- +  ​account default 
-===== Automatiser ​l'envoi de son IP de box vers le bureau ​===== +  host mail.gandi.net 
-  * [[:​tutoriel:​comment_editer_un_fichier|Modifier le fichier]]getip ​pour qu'il intègre ​la commande msmtp à la dernière ligne: +  from <adresse de l'émetteur>​ 
-<​file>​nano getip</​file>​ +  tls on 
-  ... +  tls_certcheck off 
-  ​cat .myip | msmtp johnny@whitehouse.gov +  tls_starttls off 
- +  auth on 
-  ​* Rendre le script exécutable : +  user <adresse Gandi/nom d'​utilisateur utilisé pour se connecter à la boîte aux lettres électronique Gandi> 
-<file>chmod 700 getip</file>+  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) 
 +<​file>​~/.msmtprc</​file>​ 
 +  ​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 =====
  
-==== Utilisation ==== +  ​Le site officiel de msmtp : [[http://msmtp.sourceforge.net/]]
-  ​Lancer le script +
-<​file>​sh getip</file> +
-==== Vérification ==== +
-  * Depuis votre client de messagerie, vérifiez que vous avez bien reçu le message attendu, soit 3 lignes avec l'​adresse IP de la maison blanche ​... si c'est là que votre box est branchée. +
- +
- +
-----+
  
  
 +-----------------
 +Contributeurs :​ [[:​utilisateurs:​kerkael]] création de la page le 21/08/2009, simtris MAJ de la configuration de Gmail le 17/05/2010
  • tutoriel/comment_envoyer_un_mail_par_smtp_en_ligne_de_commande.1250878706.txt.gz
  • Dernière modification: Le 18/04/2011, 14:50
  • (modification externe)