Forum Linux.général Envoi de mail local dans une boîte locale

Posté par  (site web personnel) .
Étiquettes : aucune
0
3
fév.
2005
Bonjour,

Y a-t-il moyen d'envoyer un mail généré localement dans une boîte stockée localement sans passer par les services d'un serveur mail complet et lourd ?

Tous mes besoins en email sont pour l'instant gérés par des boîtes POP (et avec getmail pour la réception), mais il arrive parfois que des programmes automatisés (cron, notamment) veuillent envoyer un mail à un utilisateur de la machine (root, etc.) au moyen d'une commande sendmail (généralement fournie par tout serveur mail digne de ce nom sous Unix). Moi ce que j'aimerais, c'est une version light de cette commande qui ne soit capable que d'envoyer un mail à un utilisateur local, avec en bonus éventuel la possibilité de faire un alias (genre root redirigé vers utilisateur normal).

J'ai rien trouvé de bien sur Google (faut dire que sendmail « pollue » pas mal les résultats de tout ce qui touche au mail sous Linux), donc toute piste est la bienvenue.
  • # Un serveur de mail sans serveur de mail ?

    Posté par  (site web personnel, Mastodon) . Évalué à 2.

    Heu, pas d'idée la comme ça. Mais je voudrais dire qu'il n'y a pas que Sendmail,il y a Exim qui fait très bien son boulot, plus leger et nettement plus simple à configurer.
    • [^] # Re: Un serveur de mail sans serveur de mail ?

      Posté par  (site web personnel) . Évalué à 2.

      Quitte à prendre un serveur de mail complet, je prendrai Postfix, que je connais déjà. Mais je suis vraiment le seul à me dire qu'avoir un démon qui tourne en permanence juste pour faire quelques append de manière sûre dans un fichier sur le disque dur, c'est trop lourd ? :-)
      • [^] # Re: Un serveur de mail sans serveur de mail ?

        Posté par  . Évalué à 2.

        Mais je suis vraiment le seul à me dire qu'avoir un démon qui tourne en permanence juste pour faire quelques append de manière sûre dans un fichier sur le disque dur, c'est trop lourd ? :-)

        A partir du moment où plusieurs utilisateurs risquent potentiellement d'écrire au même moment dans le fichier, je vois mal comment tu peux espérer te passer du daemon.

        Il y a peu de chances, certes, m'enfin bon.

        Ensuite, ton daemon il ne "tourne" pas en permanence: il risque fort de passer les trois quarts de son temps à attendre proprement. Bref, à part un peu d'occupation mémoire (à mesurer si besoin), c'est pas violent.
        • [^] # Re: Un serveur de mail sans serveur de mail ?

          Posté par  (site web personnel) . Évalué à 2.

          A partir du moment où plusieurs utilisateurs risquent potentiellement d'écrire au même moment dans le fichier, je vois mal comment tu peux espérer te passer du daemon.

          C'est pour gérer ces problèmes qu'on a inventé les verrous.

          Il y a peu de chances, certes, m'enfin bon.

          Dès qu'il y a des tâches automatisées, les chances peuvent devenir très surprenantes. (Exemple de surprise : ton noyau lance trois instance d'un script au même moment, puis forcément il répartit la charge de la machine de manière équitable entre les trois instances, et donc la même ligne de chaque instance est exécutée avant de passer à la suivante. Bien le bonjour à un éventuel « si le fichier n'existe pas alors je le créé », qui sera exécuté sous la forme « si le fichier n'existe pas » x 3, « alors je le créé » x3...)

          Si je n'avais pas à me pencher en détail sur ces problèmes de verrous, j'aurais juste eu besoin de faire un script genre « cat mail.txt >> /var/spool/mail/boa13 ». Mais vu que d'autres ont déjà bossé sur le problème, autant se servir de leur boulot. :-)

          il risque fort de passer les trois quarts de son temps à attendre proprement. Bref, à part un peu d'occupation mémoire (à mesurer si besoin), c'est pas violent.

          Je dirais même, plus de 95% du temps. C'est la potentielle occupation mémoire qui me gonfle, j'ai déjà trop de démons qui tournent.
      • [^] # Re: Un serveur de mail sans serveur de mail ?

        Posté par  . Évalué à 2.

        Je me suis posé exactement la même question tout récemment.

        A l'occasion d'une réinstall complète de mon système, j'ai décidé de changé ma chaine initiale fetchmail -> exim -> maildrop -> bogofilter -> mutt par evolution avec accès IMAP à mes comptes.

        Je me suis bien amusé au début avec la 1ère solution, mais le fait est que je n'ai pas besoin d'autant de complexité. J'ai un accès haut débit et donc la 2ème solution fonctionne très bien.

        Je me suis donc dit que j'avais plus besoin d'exim. Mais en fait non. Pour les mêmes raisons que toi, je veux continuer à recevoir les mails de la crontab ou bien de debconf.

        J'ai cherché un peu une alternative, mais je ne me suis pas beaucoup foulé, il faut bien le dire. Je me suis contenté de chercher via synaptic. Las. J'ai finalement gardé exim et l'ai configuré pour ne faire que du local. Ca fonctionne mais je ne suis pas satisfait de la solution pour autant.

        Cela m'étonne quand même qu'il ne soit pas plus facile de trouver un truc qui réponde à ce besoin très simple. Et rien qu'à celui-là.

        Donc, non, tu n'es pas
        le seul à te dire qu'avoir un démon qui tourne en permanence juste pour faire quelques append de manière sûre dans un fichier sur le disque dur, c'est trop lourd


        Je suis avec toi.
      • [^] # Re: Un serveur de mail sans serveur de mail ?

        Posté par  . Évalué à 2.

        Mais je suis vraiment le seul à me dire qu'avoir un démon qui tourne en permanence juste pour faire quelques append de manière sûre dans un fichier sur le disque dur, c'est trop lourd ? :-)
        C'est un mythe qui a la vie dure cette histoire de MTA qui tourne forcément en daemon!
        Le daemon sert avant tout pour le cas où le MTA joue le rôle de serveur SMTP. Si le MTA ne sert qu'à délivrer des mails en local ou à en envoyer à un serveur SMTP, il n'y a _PAS_ besoin d'avoir un daemon qui tourne. Comme tu l'as bien dit, ton programme qui veut envoyer un mail va "envoyer un mail à un utilisateur de la machine (root, etc.) au moyen d'une commande sendmail". Donc le MTA est appelé quand on a besoin de lui, c'est tout. Au pire, si il y a des mécanismes de retry à lancer périodiquement, tu le mets dans un cron. C'est quand même fou de contredire quelqu'un en citant ses propres paroles ;-).
  • # ssmtp...

    Posté par  . Évalué à 1.

    ssmtp sera ton ami... (je pense)

    Name : ssmtp
    Version : 2.60.7
    Release : 1mdk
    Group : System/Servers
    Size : 28768 Architecture: i586
    Source RPM : ssmtp-2.60.7-1mdk.src.rpm
    Build Host: n1.mandrakesoft.com
    Packager : Michael Scherer <misc@mandrake.org>
    URL : http://packages.debian.org/unstable/mail/ssmtp.html(...)
    Summary : A minimal mail-transfer agent which forwards mail to an SMTP server.
    Description :
    This is sSMTP, a program that replaces sendmail on workstations that
    should send their mail via the departmental mailhub from which they pick up
    their mail (via pop, imap, rsmtp, pop_fetch, NFS... or the like). This
    program accepts mail and sends it to the mailhub, optionally replacing the
    domain in the From: line with a different one.
    • [^] # Re: ssmtp...

      Posté par  . Évalué à 1.

      Heu, après réflexion , je ne réponds pas à ta question car il te faudra un serveur ailleurs... donc désolé.
      Je refléchirais 7 fois dans ma tête avant de poster le prochain coup ;o)
  • # J'ai trouvé des trucs

    Posté par  (site web personnel) . Évalué à 2.

    Maildrop correspond à ce que je recherche. Ça a encore l'air pas mal lourd (langage de programmation pour les fichiers de configuration, quatorze mégas de sources C++), mais on va pas faire la fine bouche.
    http://www.courier-mta.org/maildrop/(...)

    Ah, quoique... Après quelques recherches supplémentaires, on part dans l'excès inverse, le limite trop léger (dix kilos de sources Python), mais ça à l'air de correspondre pile-poil à ce qu'il me faut. Ceci dit, c'est pas le genre de script que je mettrais en production sur un truc pro.
    http://sourceforge.net/projects/pympsort(...)

    Bon, ben reste à bidouiller tout ça. :-)
  • # Getmail

    Posté par  . Évalué à 2.

    Si tu utilise déjà getmail tu peux l'utiliser pour bidouiller quelque chose.
    Avec getmail viennent les scripts getmail_maildir et getmail_mbox qui te permetent d'envoyer localement un mail depuis l'entrée standard vers une boite locale (de type maildir ou mbox, évidement). Pour les alias pas de problème puisque tu décide de la mailbox où c'est envoyé.
    Tu peux faire un lien symbolique de ton petit script qui appelle getmail_mbox vers /usr/sbin/sendmail pour récupérer les messages de cron ou ceux envoyés par la commande mail (ou un alias).

    A noter que si c'es uniquement pour utiliser la comande mail tu n'as pas besoin de faire se lien symbolique, il te suffit de modifier ton fichier /etc/mail.rc et d'y ajouter :
    set sendmail=/usr/local/bin/tonscript.sh


    Le problème c'est que ça ne gère pas les utilisateur, tu dois spécifier le chemin vers la mailbox ou le maildir. Là encore ça peut-être géré au niveau du script.
    De plus getmail refusera de se lancer si il est invoqué par root (comme dans le cas de la sortie d'une commande cron par example), il faudra donc prévoir dans ton script un changement de user.

    Donc y'a moyen et ça fonctionne si on n'as pas peur de bricoler un peu. Mais évidemment c'est une solution qui ne remplace en rien un vrai serveur mail.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.