Boîte mails de test
Paheko permet depuis la version 1.3.18 de configurer des adresses mail "testeuses" : chacune des adresses mail configurée recevra une copie de chaque message collectif envoyé.
Pour activer cette fonctionnalité il faut ajouter la ligne suivante dans config.local.php :
const MAIL_TEST_RECIPIENTS = ['test1@yahoo.fr', 'test2@gmail.com'];
À partir de là, chacune des adresses configurée recevra une copie des messages collectifs.
Un script optionnel permet ensuite de :
- vérifier dans quel dossier arrivent les mails
- avoir une alerte si les mails n'arrivent pas, ou arrivent dans le dossier spams, ou sont marqués comme promotions
- déplacer automatiquement le message dans la boîte de réception si le message est tombé dans les spams : cela permet en théorie d'améliorer la réputation de l'expéditeur et des envois
- marquer le message comme important (si supporté par le serveur IMAP), encore une fois pour aider à améliorer le score
Le script est ici : mail_test_recipients.php
Il doit être accompagné d'un fichier de configuration au format INI, tel que décrit ci-dessous, et ajouté dans un cron, toutes les 15 ou 30 minutes par exemple, mais seulement sur des horaires "normaux", par exemple 8h-22h, pour éviter d'être vu comme un bot :
*/15 8-22 * * * php mail_test_recipients.php mail_test_config.ini > /dev/null
Fichier de configuration
Chaque boîte mail est une section avec l'adresse mail comme identifiant de section, et une liste de clés/valeurs :
; Les commentaires commencent par un point virgule
[test1@gmail.com]
user = test1@gmail.com
password = abcd
provider = gmail.com
imap = imap.gmail.com:993
mark_as_important = false
move_if_spam = true
Options
user: identifiant de connexion IMAP. Il peut être omis si l'identifiant est l'adresse email.password: mot de passe IMAPprovider: facultatif. Permet d'indiquer le nom de domaine principal du fournisseur (pour grouper les statistiques), si le fournisseur fonctionne avec plusieurs domaines (exemple : outlook.fr, hotmail.com, etc.)imap: adresse du serveur IMAP, indiquer le port à la fin après deux pointsmark_as_important: activé par défaut. Si activé, les messages envoyés par Paheko seront déplacés dans le dossier "Important", pour indiquer au fournisseur de mail que les messages sont utiles.move_if_spam: activé par défaut. Si activé, et si le message envoyé par Paheko a été reçu en dehors de la boîte de réception, il sera déplacé dans la boîte de réception, permettant en théorie d'améliorer la réception d'autres futurs messages en indiquant auprès du fournisseur que ce n'est pas un spam. Dans ce cas il est recommandé d'avoir le contrôle de plusieurs boîtes mail chez chaque fournisseur, si possible, pour améliorer les résultats.
Options supplémentaires pour l'authentifications avec XOAUTH2
Pour XOAUTH2 (pour Google ou Microsoft par exemple), il ne faut pas fournir l'option password mais 3 autres paramètres :
oauth_refresh_token: token "refresh"oauth_url: adresse de l'API OAuth du fournisseuroauth_client_id: identifiant du client OAuthoauth_client_secret: mot de passe du client OAuth
Voir plus bas pour une description plus complète.
Les informations sur les accès OAuth seront enregistrées dans le répertoire ~/.config/test_mailboxes.json.
Fichier d'exemple
; Les commentaires commencent par un point virgule
[test1@gmail.com]
password = abcd
; Attention, pour Gmail, en utilisant un mot de passe d'application, ignorer les espaces !
imap = imap.gmail.com:993
move_if_spam = true
[test2@free.fr]
; On peut spécifier le nom d'utilisateur, sinon c'est l'adresse mail complète qui sera utilisée
user = test2
password = abcd
imap = imap.free.fr:993
move_if_spam = true
[test3@wanadoo.fr]
; Ici on indique que le nom du fournisseur est en fait "orange.fr" et non pas "wanadoo.fr"
provider = orange.fr
password = abcd
imap = imap.orange.fr:993
move_if_spam = true
Comment créer une boîte mail de test chez les principaux fournisseurs
Il est conseillé d'avoir une boîte mail dédiée chez chacun des principaux fournisseurs (voir plusieurs), si on utilise une boîte mail déjà utilisée par un humain, il verra passer des mails, et risque de perturber le fonctionnement automatisé.
- Orange :
- il faut posséder un abonnement internet (box) Orange (ou Sosh) : les abonnements mobiles ne permettent pas d'avoir une adresse mail (!)
- prix mensuel mini : 24,99 € (box Sosh)
- l'adresse est supprimée 6 mois après résiliation
- un abonné peut créer 9 boîtes mail secondaires (donc 10 en tout avec celle par défaut)
- conseil : trouver quelqu'un qui a une box Orange, et qu'il nous crée une boîte mail
- SFR :
- il faut posséder un abonnement SFR ou RED
- pas complètement sûr que ça marche avec les abonnements mobiles ? (à vérifier)
- prix mensuel mini : 1,99 € (abonnement mobile RED)
- l'adresse est bloquée (puis supprimée ?) 6 mois après résiliation
- possible de créer 10 boîtes mail secondaires
- Free :
- il faut un abonnement Freebox (ne fonctionne pas avec les abonnements mobiles)
- l'abonnement gratuit "Accès libre" ne fonctionne plus depuis 2024
- prix mensuel mini : 19,99 € pendant un an, puis 29,99 €
- boîtes mail secondaires illimitées
- pas de suppression après résiliation de l'abonnement "parent" (normalement ?)
- conseil : trouver quelqu'un qui a une Freebox et qu'il nous crée une boîte mail
- Bouygues (bbox.fr) :
- il faut un abonnement Bbox
- prix mensuel mini : 23,99 €
- conseil : le nombre de personnes ayant une adresse chez ce fournisseur n'est pas considéré comme suffisant pour justifier un abonnement
- Gmail :
- il suffit de créer un compte Google (gratuit)
- il faut créer un mot de passe spécifique (app password) pour l'accès IMAP, cela nécessite d'activer le 2FA (relou)
- le compte serait supprimé après 2 ans d'inactivité
- Laposte.net :
- compte gratuit
- la boîte mail n'est jamais supprimée, mais les données sont purgées après 4 mois d'inactivité
- Microsoft / Outlook :
- compte gratuit
- suppression après 2 ans d'inactivité
- accès uniquement via XOAUTH2 (voir plus bas)
- Yahoo :
- gratuit
- compte bloqué après 12 mois d'inactivité
Vu la facilité de création de compte et sa place prépondérante, il est conseillé d'utiliser plusieurs adresse Gmail.
Accès via XOAUTH2
Ce n'est pas nécessaire, il est possible de faire des apps passwords, c'est bien plus simple !
Microsoft / Outlook
Les "app password" ne fonctionnent plus pour se connecter en IMAP apparemment, même si leur doc dit le contraire… Pas la peine donc de se fatiguer… (source)
Il existe un script Python oauth2ms pour pouvoir se créer un token d'accès, mais il faut créer une appli sur Azure, et c'est de la merde en barre, l'interface de Azure arrête pas de planter. Jamais réussi à accéder à la page de création des applis.
J'ai trouvé une méthode bien plus simple, c'est de passer par Thunderbird :
- Ajouter le compte dans Thunderbird, suivre le process.
- Dans la config de Thunderbird, aller dans la gestion des mots de passe, clic droit sur l'identifiant créé, et copier le mot de passe en mémoire.
Ce mot de passe est le 'refresh token' qui nous est nécessaire pour se connecter. On peut donc désormais l'utiliser pour s'authentifier chez MS :
oauth_refresh_token = "M.C533_BL2.0.U.-CpVeSdIbMwVy…uE!lA$$"
oauth_client_id = "9e5f94bc-e8a4-4e73-b8be-63364c29d753"
oauth_refresh_url = "https://login.microsoftonline.com/common/oauth2/v2.0/token"
Le "client ID" indiqué est celui de Thunderbird.
Le script se chargera d'obtenir un access_token automatiquement.
Sources :
- https://rsseau.fr/fr/blog/authentification-google-oauth/
- https://tratt.net/laurie/blog/2022/pizauth_oauth_authenticator_alpha.html
- l'horrible code source de Thunderbird et son debug qui marche pas…
- https://github.com/simonrob/email-oauth2-proxy