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 [18/08/2017 10:30] enicar [Petites bidouilles pour débugger] |
utilisateurs:enicar:tutos:mutt-msmtp-multi-comptes [23/08/2017 17:06] enicar [Msmtp] |
||
---|---|---|---|
Ligne 26: | Ligne 26: | ||
# ~/Mail doit exister ! | # ~/Mail doit exister ! | ||
logfile ~/Mail/msmtp.log | logfile ~/Mail/msmtp.log | ||
+ | tls_trust_file /etc/ssl/certs/ca-certificates.crt | ||
# un premier compte, le nom qui suit le mot account est libre | # un premier compte, le nom qui suit le mot account est libre | ||
Ligne 37: | Ligne 38: | ||
# ici on demande une authentification | # ici on demande une authentification | ||
auth on | auth on | ||
- | # le user doit correspondre à la partie avant l'@ de l'adresse mail. | + | # le user doit correspondre en principe à la partie avant l'@ |
+ | # de l'adresse mail, mais ce n'est pas toujours le cas. | ||
user nom1 | user nom1 | ||
# on utilise tls. | # on utilise tls. | ||
Ligne 46: | Ligne 48: | ||
port 587 | port 587 | ||
password XXXXXXX | password XXXXXXX | ||
- | tls_trust_file /etc/ssl/certs/ca-certificates.crt | ||
# ici on désigne ce premier compte comme étant celui par défaut. | # ici on désigne ce premier compte comme étant celui par défaut. | ||
Ligne 76: | Ligne 77: | ||
<note warning>Les mots de passe doivent être stockés en clair dans le ficher **.msmtprc**. | <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 | 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 à | + | quand on l'utilise depuis **mutt** ce n'est pas possible. Il faut pour |
- | ce problème.</note> | + | ce faire utiliser une autre option : passwordeval qui permet de lancer |
+ | une commande qui va afficher le mot de passe sur la sortie standard .</note> | ||
+ | |||
+ | Voir | ||
+ | [[https://wiki.archlinux.org/index.php/Msmtp#Password_managemen::ici]] | ||
+ | pour savoir comment faire. | ||
===== 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 ==== | ||
Ligne 111: | Ligne 122: | ||
# aux mails avec plusieurs contacts. Cela permet aussi | # aux mails avec plusieurs contacts. Cela permet aussi | ||
# de faire des recherches sur nos propres mails ou l'inverse. | # de faire des recherches sur nos propres mails ou l'inverse. | ||
- | alternates="$my_address_one|$my_address_two" | + | # Je pense qu'on ne peut pas utiliser des variables ici… |
+ | alternates ^nom1@truc.fr$ ^nom2@machin.fr$ | ||
+ | |||
+ | # Pour répondre avec la bonne adresse (utilise alternates) | ||
+ | set reverse_name='yes' | ||
# on utilise le send2-hook qui est évalué dès qu'on édite un nouveau mail | # 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 | + | # ou que l'on change l'adresse du dans le menu compose ici |
# grâce à ce hook on change la variable sendmail. On peut aussi | # grâce à ce hook on change la variable sendmail. On peut aussi | ||
# changer plusieurs variables. | # changer plusieurs variables. | ||
Ligne 131: | Ligne 146: | ||
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 mail. Les 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 143: | Ligne 157: | ||
**mutt**. | **mutt**. | ||
Cela combiné avec l'utilisation de l'option de **mutt**, | Cela combiné avec l'utilisation de l'option de **mutt**, | ||
- | **envelope_from** | + | **use_envelope_from** |
va permettre d'appeler **msmtp** avec les paramètres suivant : | va permettre d'appeler **msmtp** avec les paramètres suivant : | ||
<code user> | <code user> | ||
Ligne 184: | Ligne 198: | ||
set sendmail='/usr/bin/msmtp' | set sendmail='/usr/bin/msmtp' | ||
set use_from='yes' | set use_from='yes' | ||
- | set envelope_from='yes' | + | set use_envelope_from='yes' |
# On définit deux variables pour éviter les fautes de frappes. | # On définit deux variables pour éviter les fautes de frappes. | ||
Ligne 202: | Ligne 216: | ||
# aux mails avec plusieurs contacts. Cela permet aussi | # aux mails avec plusieurs contacts. Cela permet aussi | ||
# de faire des recherches sur nos propres mails ou l'inverse. | # de faire des recherches sur nos propres mails ou l'inverse. | ||
- | alternates="$my_address_one|$my_address_two" | + | # Je pense qu'on ne peut pas utiliser des variables ici… |
+ | alternates ^nom1@truc.fr$ ^nom2@machin.fr$ | ||
+ | |||
+ | # Pour répondre avec la bonne adresse (utilise alternates) | ||
+ | set reverse_name='yes' | ||
# on utilise le send2-hook qui est évalué dès qu'on édite un nouveau mail | # on utilise le send2-hook qui est évalué dès qu'on édite un nouveau mail | ||
Ligne 219: | Ligne 238: | ||
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** est 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 **use_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 -- | ||
destinataire**. | destinataire**. | ||
Ligne 256: | Ligne 275: | ||
===== 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 270: | Ligne 289: | ||
Ce shell script peut être placé dans le **HOME**. | Ce shell script peut être placé dans le **HOME**. | ||
Voici 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 279: | Ligne 298: | ||
- | 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 288: | Ligne 310: | ||
les paramètres passés au script ainsi que la façon dont mutt a | 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 | 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 | + | changé l'option **use_envelope_from**. C'est sympa de le voir par |
soi-même. | soi-même. | ||
Ligne 303: | Ligne 325: | ||
<code>set ?sendmail</code> | <code>set ?sendmail</code> | ||
La commande **set** permet non seulement de fixer la valeur d'une variable | La commande **set** permet non seulement de fixer la valeur d'une variable | ||
- | et aussi de connaître la valeur de cette variable. Pour obtenir la | + | 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 | valeur d'une variable il suffit de précéder le nom de la variable par | ||
un point d'interrogation. | un point d'interrogation. |