unix4fun

Aller au contenu | Aller au menu | Aller à la recherche

vendredi 30 décembre 2011

Et son nom, il le signe de la pointe de l'épée ...

... ou à la fin de son mail (je sais c'est pas ça la chanson).

Et comme il est fainéant, il aimerait bien que ce soit automatique. Enfin surtout ses copains (qui sont pires que lui).

Si vous avez suivi vous avez vu que je découvre Postfix et son monde merveilleux. Ainsi j'ai découvert (bin oui puisque je découvre) que dans ce contexte là, quand on parle de signature, on en revient souvent à altermime.

J'ai donc mis en place cet outil plutôt sympa grâce à tous les supers tutoriaux qu'on trouve sur le net. Ma maigre contribution de cette fin d'année sera de vous donner le script qui permet d'avoir :

  • un mécanisme simple pour gérer les signatures user par user
  • un mécanisme simple pour gérer un disclaimer générique à un domaine
  • un mécanisme, je vous le donne en mille, simple, pour ne pas bégayer (signature en double etc)

Voilà le bousin :

#!/bin/sh
ALTERMIME=/usr/bin/altermime
ALTERMIME_DIR=/var/spool/altermime
SENDMAIL=/usr/sbin/sendmail
TEMPFAIL=75
UNAVAILABLE=69
cd $ALTERMIME_DIR || { echo $ALTERMIME_DIR does not exist; exit $TEMPFAIL; }
trap "rm -f in.$$" 0 1 2 3 15
cat >in.$$ || { echo Cannot write to $ALTERMIME_DIR; exit $TEMPFAIL; }

# d'abord on teste le mail pour voir si on n'a pas déjà rajouté le disclaimer
processed=`grep -m 1 "X-Disclaimer: yes" in.$$`
if [ -z "$processed" ]; then
        from_address=`grep -m 1 "From:" in.$$ | cut -d '<' -f 2 | cut -d '>' -f 1 | tr '@' '_'`
        from_domain=`grep -m 1 "From:" in.$$ | cut -d '@' -f 2 | cut -d '>' -f 1`
        signature_file="/etc/postfix/altermime/signatures/$from_address"
        disclaimer_file="/etc/postfix/altermime/disclaimers/$from_domain"
        # on cherche si on a une signature pour cet expéditeur
        if [ -e ${signature_file}.txt -a -e ${signature_file}.html ]; then
                $ALTERMIME --input=in.$$ \
                --disclaimer=${signature_file}.txt \
                --disclaimer-html=${signature_file}.html \
                --xheader="X-Disclaimer: yes" || \
                { echo Message content rejected; exit $EX_UNAVAILABLE; }
        fi
        # puis si on a un disclaimer générique pour son domaine
        if [ -e ${disclaimer_file}.txt -a -e ${disclaimer_file}.html ]; then
                $ALTERMIME --input=in.$$ \
                --disclaimer=${disclaimer_file}.txt \
                --disclaimer-html=${disclaimer_file}.html \
                --xheader="X-Disclaimer: yes" || \
                { echo Message content rejected; exit $EX_UNAVAILABLE; }
        fi
fi

$SENDMAIL "$@" <in.$$
exit $?

Si vous vous intéressez un peu au sujet vous verrez qu'une grosse partie de ce script se trouve sur quasiment toutes les pages qui parlent d'altermime, je remercie donc son auteur initial.

En ce qui concerne mes ajouts :

  • pour les signatures il suffit de rajouter des fichiers utilisateur_domaine.tld.{txt,html} dans /etc/postfix/altermime/signatures avec dedans ce qui va bien
  • pour les disclaimers génériques, dans /etc/postfix/altermime/disclaimers des fichiers domaine.tld.{txt,html} selon la même philosophie
  • pour l'anti bégaiement (qui se produit rarement mais dans des cas de redirection entre domaines), un simple X-Header

Voilà, je pense que c'est à peu près tout !

dimanche 26 août 2007

La suite de pine !! Bordel !

Wai j'ai viré mon thunderbird et je suis revenu à mes premiers amours, PINE, j'ai aussi decouvert qu'il n'était plus maintenu et qu'il avait un successeur maintenu au même endroit, alors pour ceux qui aiment PINE, c'est là :

http://www.washington.edu/alpine/

(J'aimerais bien essayer mutt, tout le monde me dit qu'il est bien aussi, mais j'ai toujours pas de solutions sympas pour gérer 3 ou 4 comptes et folders IMAPs en plus du NNTP, donc... si quelqu'un voulait bien me montrer comment ou où :))