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 10:44]
enicar [Msmtp]
utilisateurs:enicar:tutos:mutt-msmtp-multi-comptes [17/08/2017 11:20]
enicar [Mutt]
Ligne 61: Ligne 61:
 </​code>​ </​code>​
 <note tip> <note tip>
-on peut tester pour connaître le port utiliser en lançant msmtp +Pour connaître le port utiliser, on peut tester ​en lançant msmtp comme suit :
-comme suit :+
 <code user>​msmtp --serverinfo --tls --tls-certcheck=off --host smtp.truc.fr --port 587</​code>​ <code user>​msmtp --serverinfo --tls --tls-certcheck=off --host smtp.truc.fr --port 587</​code>​
  
Ligne 71: Ligne 70:
 </​note>​ </​note>​
 ===== Mutt ===== ===== Mutt =====
 +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.
 +
 +==== Solution 1 ====
 +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
 +« account user1 » par exemple. Pour cela dans mutt nous allons
 +utiliser la variable **sendmail** ​ qui permet de demander à mutt
 +d'​utiliser un autre programme que **/​usr/​bin/​sendmail**
 +Donc voici l'​extrait du **.muttrc** qui nous intéresse.
 +<​code>​
 +set sendmail='/​usr/​bin/​msmtp -a default'​
 +set use_from='​yes'​
 +
 +# On définit deux variables pour éviter les fautes de frappes.
 +# correspond au from du account user1
 +set my_address_one='​nom1@truc.fr'​
 +
 +# correspond au from du account user2
 +set my_address_two='​nom2@machin.fr'​
 +
 +set realname='​Prénom Nom'
 +set from=$my_address_one
 +
 +# On déclare les adresses mails qui sont les notres. Ça
 +# de s'​envoyer des emails à soi même quand on répond à tous
 +# aux mails avec plusieurs contacts. Cela permet aussi
 +# de faire des recherches sur nos propres mails ou l'​inverse.
 +alternates="​$my_address_one|$my_address_two"​
 +
 +# on utilise le send2-hook qui est évalué dès qu'on édite un nouveau mail
 +# ou que l'on change l'​adresse du from dans le menu compose ici
 +# grâce à ce hook on change la variable sendmail. On peut aussi
 +# changer plusieurs variables.
 +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'"​
 +
 +# Pour changer l'​adresse du from dans le menu compose on crée deux macros,
 +# de cette façon il suffit de taper « <esc> 1 » pour utiliser la première ​
 +# adresse et « <esc> 2 » pour la seconde.
 +macro compose <​esc>​1 "<​esc>​f^U$realname <​$my_address_one>"​
 +macro compose <​esc>​2 "<​esc>​f^U$realname <​$my_address_two>"​
 +</​code>​
 +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
 +avec le champ **from** du mail. Le reste est une expression rationnelle,​
 +mais on utilisera une chaîne simple. ​
 +
 +J'ai lu une doc où il utilisait
 +**~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
 +être différent de **from**. Mais on s'en contentera car les essais
 +que j'ai fait avec **~e** se sont révélés infructueux.
 +
 +
 +====Solution 2====
 +Cette fois-ci on ne va pas modifier la variable **sendmail**. On va utiliser
 +de nouveau **send2-hook** pour modifier la variable **from** de
 +**mutt**.
 +Cela combiné avec l'​utilisation de l'​option de **mutt**,
 +**envelope_from**
 +va permettre d'​appeler **msmtp** avec les paramètres suivant :
 +<​code>​
 +    msmtp -f adresse_expéditeur -- adresse_destinataire
 +</​code>​
 +Quand il est appelé comme cela, **msmtp** va utiliser le **from**
 +qu'on a paramètré pour chaque compte, pour déterminer comment
 +il va envoyer le mail.
 +<note important>​Faites attention à ne pas confondre, les différents **from**.
 +il y en a trois :
 +  * le **from** du mail.
 +  * celui du fichier dans le fichier **~/​.msmtprc**
 +  * et enfin celui dans le fichier **~/​.muttrc**
 +</​note>​
 +Voici, l'​extrait du **.muttrc** que je propose :
 +<​code>​
 +set sendmail='/​usr/​bin/​msmtp'​
 +set use_from='​yes'​
 +set envelope_from='​yes'​
 +
 +# On définit deux variables pour éviter les fautes de frappes.
 +# correspond au from du account user1
 +set my_address_one='​nom1@truc.fr'​
 +
 +# correspond au from du account user2
 +set my_address_two='​nom2@machin.fr'​
 +
 +set realname='​Prénom Nom'
 +set from=$my_address_one
 +
 +# On déclare les adresses mails qui sont les notres. Ça
 +# de s'​envoyer des emails à soi même quand on répond à tous
 +# aux mails avec plusieurs contacts. Cela permet aussi
 +# de faire des recherches sur nos propres mails ou l'​inverse.
 +alternates="​$my_address_one|$my_address_two"​
 +
 +# on utilise le send2-hook qui est évalué dès qu'on édite un nouveau mail
 +# ou que l'on change l'​adresse du from dans le menu compose ici
 +# grâce à ce hook on change la variable from. On peut aussi
 +# changer plusieurs variables.
 +send2-hook "~e $my_address_two"​ "set from=$my_address_two"​
 +
 +# Pour changer l'​adresse du from dans le menu compose on crée deux macros,
 +# de cette façon il suffit de taper « <esc> 1 » pour utiliser la première ​
 +# adresse et « <esc> 2 » pour la seconde.
 +macro compose <​esc>​1 "<​esc>​f^U$realname <​$my_address_one>"​
 +macro compose <​esc>​2 "<​esc>​f^U$realname <​$my_address_two>"​
 +</​code>​
 +Peu de choses ont changé par rapport à la première solution.
 +La variable **sendmail = /​usr/​bin/​msmtp** sans options supplémentaires.
 +L'​option **envelope_from** est positionnée à **yes** , c'est ce qui permet
 +d'​appeler **msmtp** ​ avec la commande **msmtp -f expéditeur --
 +destinataire**.
 +
 +<note important>​
 +**Mutt** utilise la variable **from** définit dans **.muttrc** (ou
 +dans ce cas la valeur que l'on donne dans **send2-hook*) et non le
 +champ **from** du mail pour fixer l'​expéditeur utiliser dans la commande ​
 +**msmtp**.
 +</​note>​
 +
 +Et enfin, le  **send2-hook** où on utilise **~e** et non **~f**.
 +Aussi on fixe le **from** de mutt.
 +
 +
 +Ne me demander pas pourquoi, mais ici le **~e** fonctionne. En plus,
 +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
 +« 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
 +sa valeur reste celle attribuée dans le hook. C'est pour cela
 +que quand on utilise les hook il faut en principe utiliser
 +un hook par défaut qui rétablit la ou les valeurs par défaut.
 +Ça fait deux mystères !
 +
 +C'est la méthode que je préfère, elle est plus légère.
  
  

Pied de page des forums

Propulsé par FluxBB