Simple client de messagerie pour envoyer mail depuis script

Tags: #<Tag:0x00007fd6e6021cb8>

Bonjour à tous :slight_smile:

Je souhaiterais trouver la solution la plus simple et la plus légère à mettre en œuvre pour envoyer un mail depuis un script.

ssmtp correspondrait à ma demande mais n’est plus maintenu et n’est plus disponible (repris par le projet msmtp). De plus, je ne suis pas convaincu que msmtp corresponde à ma demande.

Thunderbird est un MUA (Mail User Agent) en mode graphique et permet (entre autres) d’envoyer un mail à un MTA (Mail Transport Agent), pour peu que l’on configure les l’accès au serveur MTA (SMTP sortant) et ce logiciel n’a besoin de rien d’autre. En fait, il me faudrait juste un MUA en ligne de commande.

Je ne comprends pas pourquoi tous les fils traitant de ce sujet imposent d’installer Postfix ou Mutt ou autres qui ne sont pas simples à configurer…

Si quelqu’un pouvait m’éclairer sur la solution la plus simple.

Adelphement,
lnj

ben « mail » non ?

Salut Tamie !

Ben j’y ai cru quelques instants mais de ce que je comprends (mais je peux me tromper) mail nécessite un MTA comme Postfix (source). Du coup je viens de rechercher si mail pouvait être utilisé sans MTA => il y aurait mailx

la bonne pratique c’est un MTA et mail à mon sens.
Difficile de se passer d’un MTA.
exim est un standard en la matiere.

Personnellement, j’utilise OpenSMTPD pour l’aspect configuration, puis mail pour l’envoi de message adéquat.

J’ai opté pour OpenSMTPD - certes parce que je suis impliqué OpenBSD, à ma manière - mais aussi parce que c’est vraiment très simple à configurer, vraiment.

Tu trouveras ce tuto, de mon cru :


L’autre solution un poil plus compliqué est l’usage de mutt qui une fois bien configuré te permettra d’envoyer des mails en interrogeant un MTA.

MSMTP est ce qu’il te faut.

1 J'aime

OpenSMTPD, ça m’a l’air prometteur. Je teste et fais un retour.

1 J'aime

tu as swaks.

une petite présentation : https://www.youtube.com/watch?v=zaOhO7Y2tIw

Yepee :slight_smile: ! C’est exactement ce que je cherchais. Mail envoyé avec succès depuis Debian Buster from scratch !

Il n’y a besoin de rien d’autre que swaks et aucune configuration est nécessaire. La commande qui a réussi dans mon cas est :

swaks -t user@mon.domaine.com -s smtp.mon.domaine.com:587 -au user@mon.domaine.com -ap MotDePasseBalese -f user@mon.domaine.com

=> j’ai reçu un mail avec pour sujet « test » suivi de la date/heure de l’envoi

[edit]J’ai également testé d’adapter le from (-f) pour indiquer dans l’adresse mail, l’hôte initiateur et ça marche. En d’autre terme user@mon.domaine.com deviendrait host@mon.domaine.com même si cette adresse mail n’existe pas réellement, le serveur smtp que nous utilisons l’autorise.[/edit]

[edit2]J’ai également testé d’envoyer un mail à une adresse to (-t) sur un autre domaine que celui de mon.domaine.com (en occurrence Gmail et Free qui ont reçu direct et Orange qui a mis un peu de temps à recevoir) => ça fonctionne aussi :slight_smile: [/edit2]

Merci cleloup :wave: problème résolu !

Tant que tu n’as pas besoin de sortir directement sur internet :slight_smile:

Comment ça ?

Si c’est le cas, on peut se passer du nom de domaine je pense.

Non parce que de nombreux systèmes de messagerie ont des sécurités (comme le paramètre spf des noms de domaine) qui vont considérer ton message comme du spam.

Quand à un système de messagerie standard sur internet qui peut recevoir des email sans domaine, je demande à voir, car ça ne marche pas à moins d’avoir un routage en dur du message directement vers le serveur smtp destinataire.

Je reviens sur ma question …
Qu’est ce que tu veux dire concrètement par là. J’avoue ne pas comprendre.

une messagerie SMTP sur internet consiste a avoir un serveur MTA qui contacte un autre serveur MTA.
le serveur destinataire va vérifier si le serveur émetteur est légitime pour envoyer des messages au nom du domaine de l’adresse de l’émetteur.

Quand un serveur MTA contacte un autre serveur MTA, c’est parce qu’il a d’abord analysé l’adresse destinataire, en extrait le domaine, et fait une requete DNS de type MX pour trouver le serveur destinataire. le serveur destinataire va lui aussi faire une requete pour verifier l’enregistrement spf du domaine emetteur pour vérifier que le serveur a le droit d’émettre au nom de ce domaine.

L’utilisation d’un client qui contacte directement le MTA fera que ça ne marchera pas car ton adresse ne sera pas enregistrée à ce titre. et le risque c’est de se faire blacklister comme spammeur.

L’adresse user@mon.domaine.com que j’utilise est un vrai compte mail (je l’ai anonymisé ici par sécurité/confidentialité). Donc en gros, mon SMTP m’identifie avec le from qui existe et le user/mdp associé. Donc je ne comprends pas le risque que je cours d’être blacklisté. J’insiste un peu, mais j’ai supposé que ta remarque initiale impliquait soit la sécurité, soit le blacklistage. Je veux être sûr de bien comprendre le fonctionnement pour ne pas avoir de surprise par la suite.

Je ne connaissais pas swaks c’est riche de simplicité… Et ça fonctionne

Je ne te parle pas du compte mais du domaine. POur pouvoir emettre en MTA vers un autre serveur MTA, le receveur peut verifier que tu es legitime à envoyer un message au nom de ce domaine. L’adresse emeteur à ce stade n’a auscun interet, c’est le domaine qui est verifié.
en plus, on peut envoyer un mail avec n’importe quelle adresse emetteur.

le fonctionement c’est:

Client SMTP —> MTA1 —> MTA2 —>etc…

MTA2 va verifier que MTA1 a le droit d’emettre au nom du domaine mon.domaine.com.
si ton outil fait office de MTA1, alors il va etre vérifié. Si le MTA1 n’est pas legitime à emettre, MTA2 va soit bloquer lui-même soit informer des serveurs centraux de reputation; si trop de serveur signalent MTA1 le cserveur central de reputation va blacklister l’adresse IP de MTA1.

Je ne comprends pas pourquoi tu dis que « l’outil » ferait office de MTA. Moi ce que je demande dans ce fil c’est justement un MUA SANS MTA. Si j’ai bien compris le fonctionnement, Thunderbird est juste un MUA et n’a pas nécessairement besoin de MTA local pour fonctionner car on peut lui donner des MTA distants (les serveurs SMTP des fournisseurs). Ai-je juste ? En envoyant les commandes avec swaks j’applique le même principe il me semble.

J’émets l’hypothèse qu’on parle de la même chose de 2 manières différentes, mais comme il y aurait du blacklistage possible, je préfère en être sûr.

Très intéressant swaks.
La seule question est : « peut-il être utilisé en prod, ou reste-t-il ce qu’il dit être : un outil de test. »