logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

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
Prochaine révision Les deux révisions suivantes
utilisateurs:enicar:tutos:mutt-msmtp-multi-comptes [17/08/2017 12:12]
enicar [Petites bidouilles pour débugger]
utilisateurs:enicar:tutos:mutt-msmtp-multi-comptes [18/08/2017 18:01]
enicar [Msmtp]
Ligne 3: Ligne 3:
   * Objet : Configuration de Mutt et de msmtp pour pouvoir gérer l'​envoie de plusieurs comptes depuis Mutt.   * Objet : Configuration de Mutt et de msmtp pour pouvoir gérer l'​envoie de plusieurs comptes depuis Mutt.
   * Niveau requis : avisé ​   * Niveau requis : avisé ​
-  * Voir aussi : [[doc:​reseau:​mutt]]+  * Voir aussi : [[doc:​reseau:​mutt]], [[http://​www.mutt.org/​doc/​manual/​]]
 ===== Introduction ===== ===== Introduction =====
 Comment paramétrer **mutt** et **msmtp** pour pouvoir envoyer des emails Comment paramétrer **mutt** et **msmtp** pour pouvoir envoyer des emails
Ligne 12: Ligne 12:
 dans les deux… Donc soyez attentif ! dans les deux… Donc soyez attentif !
  
 +<note tip>
 +Des commentaires sont présents dans les fichiers de configurations. Ils sont là à titre
 +d'​information et d'​explication. Lisez-les. ​
 +</​note>​
 ===== Msmtp ===== ===== Msmtp =====
 Commençons par la configuration de **msmtp**. Je propose l'​exemple suivant Commençons par la configuration de **msmtp**. Je propose l'​exemple suivant
Ligne 17: Ligne 21:
 **msmtp** doit se trouver dans le **HOME** de l'​utilisateur et **msmtp** doit se trouver dans le **HOME** de l'​utilisateur et
 s'​appelle **.msmtprc**. Je propose la configuration suivante : s'​appelle **.msmtprc**. Je propose la configuration suivante :
-<code>+<file config fichier .msmtprc>
 defaults defaults
 # on demande un log des transactions smtp. Le répertoire # on demande un log des transactions smtp. Le répertoire
Ligne 24: Ligne 28:
  
 # un premier compte, le nom qui suit le mot account est libre # un premier compte, le nom qui suit le mot account est libre
-# c'est juste la désignation du compte pour msmtp. On ne mettra, +# c'est juste la désignation du compte pour msmtp. On ne mettra 
-# toutefoispas d'​espaces dans ce nom ! +# toutefois pas d'​espaces dans ce nom ! 
-account ​user1+account ​compte_nom1
 # host définit le relais smtp à utiliser. # host définit le relais smtp à utiliser.
 host smtp.truc.fr host smtp.truc.fr
Ligne 48: Ligne 52:
 # demandé en particulier. (cf la suite). # demandé en particulier. (cf la suite).
  
-account default :user1+account default :compte_nom1
  
 # on définit un second compte : # on définit un second compte :
-account ​user2+account ​compte_nom2
 host smtp.machin.fr host smtp.machin.fr
 from  nom2@machin.fr from  nom2@machin.fr
Ligne 59: Ligne 63:
 # le port 25 est le port par défaut quand n'​utilise pas tls # le port 25 est le port par défaut quand n'​utilise pas tls
 port 25 port 25
-</code>+</file>
 <note tip> <note tip>
 Pour connaître le port utiliser, on peut tester en lançant msmtp comme suit : Pour connaître le port utiliser, on peut tester en lançant msmtp comme suit :
Ligne 69: Ligne 73:
 ou non le tls. ou non le tls.
 </​note>​ </​note>​
 +
 +<note warning>​Les mots de passe doivent être stockés en clair dans le ficher **.msmtprc**.
 +Normalement **msmtp** est capable de demander le mot de passe quand nécessaire,​ mais
 +quand on l'​utilise depuis **mutt** ce n'est pas possible. Je ne connais pas de solution à
 +ce problème.</​note>​
 +
 ===== Mutt ===== ===== Mutt =====
 Bon passons à la configuration de **mutt**. Je ne décris ici que les quelques Bon passons à la configuration de **mutt**. Je ne décris ici que les quelques
 options qui nous intéressent pour l'​envoi des mails avec plusieurs comptes. options qui nous intéressent pour l'​envoi des mails avec plusieurs comptes.
 +
 +<note important>​Lorsque vous modifiez des options dans le fichier de configuration
 +de **mutt** (**.muttrc**),​ pensez à quitter **mutt** et à le relancer. Sinon
 +ce sont les anciens réglages qui resteront effectifs.
 +</​note>​
  
 ==== Solution 1 ==== ==== Solution 1 ====
 On va utiliser l'​option **-a** de **msmtp** qui permet de désigner le compte On va utiliser l'​option **-a** de **msmtp** qui permet de désigner le compte
 à utiliser pour l'​envoi du mail. C'est le nom du compte désigner par à utiliser pour l'​envoi du mail. C'est le nom du compte désigner par
-« account ​user1 » par exemple. Pour cela dans mutt nous allons+« account ​compte_nom1 ​» par exemple. Pour cela dans mutt nous allons
 utiliser la variable **sendmail** ​ qui permet de demander à mutt utiliser la variable **sendmail** ​ qui permet de demander à mutt
 d'​utiliser un autre programme que **/​usr/​bin/​sendmail** d'​utiliser un autre programme que **/​usr/​bin/​sendmail**
 Donc voici l'​extrait du **.muttrc** qui nous intéresse. Donc voici l'​extrait du **.muttrc** qui nous intéresse.
-<code>+<file config extrait du .muttrc>
 set sendmail='/​usr/​bin/​msmtp -a default'​ set sendmail='/​usr/​bin/​msmtp -a default'​
 set use_from='​yes'​ set use_from='​yes'​
  
 # On définit deux variables pour éviter les fautes de frappes. # On définit deux variables pour éviter les fautes de frappes.
-# correspond au from du account ​user1+# correspond au from de .msmtprc de  « account ​compte_nom1 »
 set my_address_one='​nom1@truc.fr'​ set my_address_one='​nom1@truc.fr'​
  
-# correspond au from du account ​user2+# correspond au from de .msmtprc de « account ​compte_nom2 »
 set my_address_two='​nom2@machin.fr'​ set my_address_two='​nom2@machin.fr'​
  
 set realname='​Prénom Nom' set realname='​Prénom Nom'
 +
 +# Correspond à  « account ​ default » dans .msmtprc, dans notre cas
 +# c'est aussi « account compte_nom1 »
 set from=$my_address_one set from=$my_address_one
  
-# On déclare les adresses mails qui sont les notres. Ça+# On déclare les adresses mails qui sont les notres. Ça évite
 # de s'​envoyer des emails à soi même quand on répond à tous # de s'​envoyer des emails à soi même quand on répond à tous
 # aux mails avec plusieurs contacts. Cela permet aussi # aux mails avec plusieurs contacts. Cela permet aussi
Ligne 105: Ligne 123:
 # changer plusieurs variables. # changer plusieurs variables.
 send2-hook "~f $my_address_one"​ "set sendmail='/​usr/​bin/​msmtp -a default'"​ send2-hook "~f $my_address_one"​ "set sendmail='/​usr/​bin/​msmtp -a default'"​
-send2-hook "~f $my_address_two"​ "set '​sendmail=/​usr/​bin/​msmtp -a user2'"​+send2-hook "~f $my_address_two"​ "set '​sendmail=/​usr/​bin/​msmtp -a compte_nom2'"​
  
 # Pour changer l'​adresse du from dans le menu compose on crée deux macros, # Pour changer l'​adresse du from dans le menu compose on crée deux macros,
Ligne 112: Ligne 130:
 macro compose <​esc>​1 "<​esc>​f^U$realname <​$my_address_one>"​ macro compose <​esc>​1 "<​esc>​f^U$realname <​$my_address_one>"​
 macro compose <​esc>​2 "<​esc>​f^U$realname <​$my_address_two>"​ macro compose <​esc>​2 "<​esc>​f^U$realname <​$my_address_two>"​
-</code>+</file>
 Dans le **send2-hook** la première chaîne (**~f $my_address_one** par exemple) est Dans le **send2-hook** la première chaîne (**~f $my_address_one** par exemple) est
 un motif de recherche. Le **~f** demande à **mutt** de faire une correspondance un motif de recherche. Le **~f** demande à **mutt** de faire une correspondance
Ligne 118: Ligne 136:
 mais on utilisera une chaîne simple. ​ mais on utilisera une chaîne simple. ​
  
-J'ai lu une doc où il utilisait+J'ai lu une doc où ils utilisaient
 **~e** à la place de **~f**. Avec **~e** la correspondance est cherchée **~e** à la place de **~f**. Avec **~e** la correspondance est cherchée
-par rapport à l'​expéditeur ​(c'est à dire le champ **send**) ​qui peut +par rapport à l'​expéditeur qui peut être différent ​du **from** ​du mailLes essais 
-être différent ​de **from**. ​Mais on s'en contentera car les essais +que j'​ai ​réalisé ​avec **~e** se sont révélés infructueux, on utilisera donc **~f**.
-que j'​ai ​fait avec **~e** se sont révélés infructueux.+
  
  
Ligne 132: Ligne 149:
 **envelope_from** **envelope_from**
 va permettre d'​appeler **msmtp** avec les paramètres suivant : va permettre d'​appeler **msmtp** avec les paramètres suivant :
-<​code>​+<​code ​user>
     msmtp -f adresse_expéditeur -- adresse_destinataire     msmtp -f adresse_expéditeur -- adresse_destinataire
 </​code>​ </​code>​
Ligne 144: Ligne 161:
   * et enfin celui dans le fichier **~/​.muttrc**   * et enfin celui dans le fichier **~/​.muttrc**
 </​note>​ </​note>​
 +Les trois sont bien définis dans trois fichier différents. **Mutt** se
 +sert des variables **from** et **realname** definies dans son fichier
 +**.muttrc** pour remplir automatiquement le champ **from** du mail
 +lorsqu'​on demande de composer un nouveau message (avec la touche
 +<​key>​m</​key>​). Si l'on change la valeur de ce champ dans le mail
 +une fois que l'on quitte l'​éditeur,​ **mutt** n'est pas au courant
 +que l'on a changé cette valeur. Pour lui faire prendre en compte ce
 +changement on va utiliser **send2-hook**. ​
 +
 +<note important>​
 +Pour que cette méthode fonctionne il faut que le **from** de
 +**mutt** corresponde au **from** du mail et au **from** du
 +compte à utiliser dans le fichier de configuration de **msmtp**
 +(**.msmtprc**). Ce dernier point est très important, attention aux
 +fautes de frappe !</​note>​
 +
 +Pour générer la commande :
 +<code user>
 +    msmtp -f adresse_expéditeur -- adresse_destinataire
 +</​code>​
 +**mutt** se sert de sa variable **from** pour **adresse_expéditeur**,​
 +et non du **from** du mail.
 +
 Voici, l'​extrait du **.muttrc** que je propose : Voici, l'​extrait du **.muttrc** que je propose :
-<code>+<file config extrait du .muttrc>
 set sendmail='/​usr/​bin/​msmtp'​ set sendmail='/​usr/​bin/​msmtp'​
 set use_from='​yes'​ set use_from='​yes'​
Ligne 151: Ligne 191:
  
 # On définit deux variables pour éviter les fautes de frappes. # On définit deux variables pour éviter les fautes de frappes.
-# correspond au from du account ​user1+# correspond au from de .msmtpcrc de « account ​compte_nom1 »
 set my_address_one='​nom1@truc.fr'​ set my_address_one='​nom1@truc.fr'​
  
-# correspond au from du account ​user2+# correspond au from de .msmtprc de « account ​compte_nom2 »
 set my_address_two='​nom2@machin.fr'​ set my_address_two='​nom2@machin.fr'​
  
 set realname='​Prénom Nom' set realname='​Prénom Nom'
 +# Correspond au « account default » dans .msmtprc, dans notre cas
 +# c'est aussi  « account compte_nom1 »
 set from=$my_address_one set from=$my_address_one
  
-# On déclare les adresses mails qui sont les notres. Ça+# On déclare les adresses mails qui sont les notres. Ça évite
 # de s'​envoyer des emails à soi même quand on répond à tous # de s'​envoyer des emails à soi même quand on répond à tous
 # aux mails avec plusieurs contacts. Cela permet aussi # aux mails avec plusieurs contacts. Cela permet aussi
Ligne 177: Ligne 219:
 macro compose <​esc>​1 "<​esc>​f^U$realname <​$my_address_one>"​ macro compose <​esc>​1 "<​esc>​f^U$realname <​$my_address_one>"​
 macro compose <​esc>​2 "<​esc>​f^U$realname <​$my_address_two>"​ macro compose <​esc>​2 "<​esc>​f^U$realname <​$my_address_two>"​
-</code>+</file>
  
 Peu de choses ont changé par rapport à la première solution. Peu de choses ont changé par rapport à la première solution.
-La variable **sendmail = /​usr/​bin/​msmtp** sans options supplémentaires.+La variable **sendmail = /​usr/​bin/​msmtp** ​est sans options supplémentaires.
 L'​option **envelope_from** est positionnée à **yes** , c'est ce qui permet L'​option **envelope_from** est positionnée à **yes** , c'est ce qui permet
 d'​appeler **msmtp** ​ avec la commande **msmtp -f expéditeur -- d'​appeler **msmtp** ​ avec la commande **msmtp -f expéditeur --
Ligne 191: Ligne 233:
 **msmtp**.</​note>​ **msmtp**.</​note>​
  
-Et enfin, le  **send2-hook** où on utilise **~e** et non **~f**.+Et enfin, le  **send2-hook** où l'on utilise **~e** et non **~f**.
 Aussi on fixe le **from** de mutt. Aussi on fixe le **from** de mutt.
  
Ligne 198: Ligne 240:
 que l'​avantage,​ c'est qu'on est pas obligé d'​avoir deux **send2-hook**. que l'​avantage,​ c'est qu'on est pas obligé d'​avoir deux **send2-hook**.
 Dans cette configuration,​ la variable **from** reprend sa valeur d'​origine Dans cette configuration,​ la variable **from** reprend sa valeur d'​origine
-« toute seule », c'est un mystère supplémentaire car il est dit+« toute seule ». C'est un mystère supplémentaire car il est dit
 dans la documentation que lorsqu'​on change une valeur avec un hook dans la documentation que lorsqu'​on change une valeur avec un hook
 sa valeur reste celle attribuée dans le hook. C'est pour cela sa valeur reste celle attribuée dans le hook. C'est pour cela
Ligne 218: Ligne 260:
 ===== Petites bidouilles pour débugger ===== ===== Petites bidouilles pour débugger =====
 Je propose maintenant un petit truc qui permet de voir comment Je propose maintenant un petit truc qui permet de voir comment
-**msmtp** est appeler. Pour cela nous allons faire un petit+**msmtp** est appelé. Pour cela nous allons faire un petit
 script en shell que j'​appelle **mysendmail** : script en shell que j'​appelle **mysendmail** :
 <code bash> <code bash>
Ligne 231: Ligne 273:
  
 Ce shell script peut être placé dans le **HOME**. Ce shell script peut être placé dans le **HOME**.
-Voci ce qu'on y fait : +Voici ce qu'on y fait : 
-* On crée un répertoire **~/tmp** s'il n'​existait pas. +  * On crée un répertoire **~/tmp** s'il n'​existait pas. 
-* On sauvegarde les paramètres passés dans le fichier ~/​tmp/​params.txt +  * On sauvegarde les paramètres passés dans le fichier ​**~/​tmp/​params.txt** 
-* On sauvegarde le mail dans ~/​tmp/​message.txt+  * On sauvegarde le mail dans **~/​tmp/​message.txt**
  
  
Ligne 241: Ligne 283:
  
  
-Ensuite, pour l'​utiliser avec **mutt** on remplace toute les +Ensuite, pour l'​utiliser avec **mutt** ​on va rendre ce script exécutable : 
-occurrences de **sendmail='/​usr/​bin/​msmtp'​** par+<code user> 
 +chmod u+x ~/​mysendmail  
 +</​code>​ 
 +Puis on remplace toute les occurrences de **sendmail='/​usr/​bin/​msmtp'​** par
 **sendmail='​~/​mysendmail** dans le fichier **.muttrc**. **sendmail='​~/​mysendmail** dans le fichier **.muttrc**.
  
Ligne 255: Ligne 300:
 <note important>​N'​oubliez pas de rétablir l'​option **sendmail** après <note important>​N'​oubliez pas de rétablir l'​option **sendmail** après
 vos expériences. Sinon, plus aucuns mails ne seront envoyé, et vous vos expériences. Sinon, plus aucuns mails ne seront envoyé, et vous
-vous demanderez pourquoi personne ne vous répond :D+vous demanderez pourquoi personne ne vous répond :-D
 </​note>​ </​note>​
 +
 +Une autre chose que vous pouvez tester, c'est la valeur, de la
 +variable **sendmail** dans mutt lorsque vous utiliser la //Solution 1//.
 +Dans mutt pour connaître la valeur d'une variable, il suffit ​
 +de taper <​key>:</​key>​ pour passer en mode commande. Là une ligne
 +apparaît en bas de l'​écran,​ puis vous tapez :
 +<​code>​set ?​sendmail</​code>​
 +La commande **set** permet non seulement de fixer la valeur d'une variable
 +mais aussi de connaître la valeur de cette variable. Pour obtenir la
 +valeur d'une variable il suffit de précéder le nom de la variable par
 +un point d'​interrogation.
 +
 +
 +De cette façon vous pourrez vérifier la valeur des variables
 +**sendmail** et **from** (pour la //Solution 2//) facilement.
  
  

Pied de page des forums

Propulsé par FluxBB