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 09:54] enicar [Mutt] |
utilisateurs:enicar:tutos:mutt-msmtp-multi-comptes [21/08/2017 16:37] enicar [Mutt] |
||
---|---|---|---|
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 | ||
# 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, | ||
# toutefois, pas 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 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 52: | Ligne 53: | ||
# 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 82: | Ligne 83: | ||
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** | ||
Ligne 95: | Ligne 101: | ||
# 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 | ||
# 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. | ||
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 128: | Ligne 141: | ||
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 140: | Ligne 152: | ||
**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 181: | Ligne 193: | ||
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. | ||
- | # 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 | ||
# 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 213: | Ligne 232: | ||
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 **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 224: | Ligne 243: | ||
**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 251: | Ligne 270: | ||
===== 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 264: | Ligne 283: | ||
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 274: | Ligne 293: | ||
- | 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 298: | Ligne 320: | ||
<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. |