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 →
Ci-dessous, les différences entre deux révisions de la page.
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 11:05] enicar [Mutt] |
utilisateurs:enicar:tutos:mutt-msmtp-multi-comptes [17/08/2017 12:24] enicar [Mutt + msmtp multi-comptes] |
||
---|---|---|---|
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 : | + | * 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 | ||
provenant deux adresses mails différentes ? | provenant deux adresses mails différentes ? | ||
- | C'est la question à laquelle je propose deux solutions. ne seront | + | C'est la question à laquelle je propose deux solutions. Mais je dois vous avertir, |
- | abordés ici que les options qui permettent de gérer plusieurs comptes | + | je décris deux méthodes pour y arriver. C'est un peu alambiqué, car il faut que |
- | dans **mutt**. | + | les deux logiciels coopèrent. En plus certaines options portent le même nom |
+ | dans les deux… Donc soyez attentif ! | ||
===== Msmtp ===== | ===== Msmtp ===== | ||
Ligne 69: | Ligne 69: | ||
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 | ||
Ligne 125: | Ligne 131: | ||
- | ====Solution 2==== | + | ==== Solution 2 ==== |
Cette fois-ci on ne va pas modifier la variable **sendmail**. On va utiliser | Cette fois-ci on ne va pas modifier la variable **sendmail**. On va utiliser | ||
de nouveau **send2-hook** pour modifier la variable **from** de | de nouveau **send2-hook** pour modifier la variable **from** de | ||
Ligne 138: | Ligne 144: | ||
qu'on a paramètré pour chaque compte, pour déterminer comment | qu'on a paramètré pour chaque compte, pour déterminer comment | ||
il va envoyer le mail. | 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 : | Voici, l'extrait du **.muttrc** que je propose : | ||
<code> | <code> | ||
Ligne 173: | Ligne 184: | ||
macro compose <esc>2 "<esc>f^U$realname <$my_address_two>" | macro compose <esc>2 "<esc>f^U$realname <$my_address_two>" | ||
</code> | </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. Remarquez | ||
+ | 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 | ||
+ | « 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. | ||
+ | |||
+ | ==== Conclusion ==== | ||
+ | Bref, ces déboires avec le **~e** et **~f** sont peut-être un bug. | ||
+ | Je ne sais pas, je n'ai pas encore tout compris à ce sujet. Pour | ||
+ | info j'utilise **NeoMutt** version 1.8.3 (du 09-06-2017). **NeoMutt** | ||
+ | est un Mutt amélioré avec notamment la possibilité d'avoir une | ||
+ | barre latéralle pour naviguer entre les différentes BALs. | ||
+ | Peut-être que ces réglages sont spécifiques à la version de **mutt** | ||
+ | que j'utilise. | ||
+ | |||
+ | ===== Petites bidouilles pour débugger ===== | ||
+ | Je propose maintenant un petit truc qui permet de voir comment | ||
+ | **msmtp** est appeler. Pour cela nous allons faire un petit | ||
+ | script en shell que j'appelle **mysendmail** : | ||
+ | <code bash> | ||
+ | |||
+ | #! /bin/sh | ||
+ | if ! [ -d ~/tmp ]; then | ||
+ | mkdir -m 0700 tmp | ||
+ | fi | ||
+ | echo $@ >~/tmp/params.txt | ||
+ | cat >~/tmp/message.txt | ||
+ | </code> | ||
+ | |||
+ | Ce shell script peut être placé dans le **HOME**. | ||
+ | Voci ce qu'on y fait : | ||
+ | * 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 le mail dans ~/tmp/message.txt | ||
+ | |||
+ | |||
+ | Et c'est tout. Autant dire tout de suite qu'avec ce script, vous | ||
+ | n'enverrez aucun mail ! | ||
+ | |||
+ | |||
+ | Ensuite, pour l'utiliser avec **mutt** on remplace toute les | ||
+ | occurrences de **sendmail='/usr/bin/msmtp'** par | ||
+ | **sendmail='~/mysendmail** dans le fichier **.muttrc**. | ||
+ | |||
+ | |||
+ | À partir de là, chaque que vous enverrez un mail dans **mutt**, c'est | ||
+ | le script **mysendmail** qui sera appelé. Vous pourrez voir ainsi | ||
+ | les paramètres passés au script ainsi que la façon dont mutt a | ||
+ | formé le mail. Vous pourrez alors expérimenté ce que ça fait de | ||
+ | changé l'option **envelope_from**. C'est sympa de le voir par | ||
+ | soi-même. | ||
+ | |||
+ | <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 | ||
+ | vous demanderez pourquoi personne ne vous répond :D | ||
+ | </note> | ||