Creation Messagerie / redistribution de mail

Résolu/Fermé
scolopendre - 29 mars 2006 à 11:05
 scolopendre - 24 avril 2006 à 13:03
Bonjour ,j 'aimerais créer un serveur de redistribution de mails automatique.Par Evolution , je les récupére mais je suis obligé de les renvoyer par une action manuelle.Est-ce que quelqu'un a déjà fait celà et sur quels produits s'est-il reposé?
Merci pour votre(vos) réponse(s)
A voir également:

12 réponses

Essaie de voir si procmail peut convenir à tes besoins. Voir ce lien par exemple : https://www.tuteurs.ens.fr/internet/courrier/procmail.html
0
Bonjour Denis ,
tous mes remerciements ;
Mon projet est le suivant :
Récupération à partir d 'une BAL Générique de mails.
Redistribution de ces mails vers d'autres BAL , automatiquement .
J 'ai testé la récup via evolution + script modification mais pas de possibilité de renvoi automatique.
J 'ai testé via fetchmail/procmail/postfix , mais je ne peux modifier les fichiers en réception pour renvoi.(critére de selection )
J 'ai testé via fetchmail/pro cmail/sendmail ,même souci.
Je teste maintenant via KMAIL.il stocke les fichiers format mbox ( que je peux modifier ) et permet l' envoi automatique.
je t 'aviserai de la suite des événements
0
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
5 avril 2006 à 14:36
Salut,

Avec procmail et l'outils formail qui fait partie du package procmail, tu peux réécrire des lignes d'entête (option -I de formail) le tout dans une règle de filtrage procmailrc.

Si celà fait partie de ce que tu veux faire, tu devrais creuser la question.

On obtient en général une aide plus précise sur les forums lorsqu'on poste un exemple illustrant ce qu'on veut faire très exactement... Là, avec tes posts, on en est toujours réduits aux suppositions.


Dal
0
bonjour ,
voici donc mon prob.
J ' ai une BAL qui reçoit X mails
ces mails , je veux les redistribuer ,de manière individuelle sur n boites différentes.
donc le mail 1 vers mail-user1,le mail 2 vers mail-user2 , le mail 3 vers mail-user3 , et ainsi de suite .
sachant que je n 'ai que 6 utilisateurs et donc que le mail 7 ira à la mail 1 .......
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
J'ai déjà fait un truc de ce genre:

Récupération des mails d'une boite "cacht all", puis livraison en local aux clients.

Ma config:

Serveur Postfix
Fetchmail
Serveur DNS, le tout sous une Sarge
et la suite courrier (imap, pop...)

De mémoire:

J'utilisais "fetchmail" et son mode "multidrop"

Un exemple de fichier ".fetchmailrc" avec les droits "600" dans le repertoie "/root"

# Configuration created Sun Jul 25 22:48:19 2003 by fetchmailconf

#defaults uidl keep

set postmaster "postmaster"
set no bouncemail
set no spambounce
set properties ""
set logfile /var/log/fetchmail.log

poll pop.wanadaub.fr protocol POP3 and options no dns localdomains mondomaine.net:
               user 'login_compte_catchall' with pass 'mot_de_passe_compte_catchall' to * here 


A toi de remplacer pop.wanadaub.fr, mondomaine.net, et login_compte_catchall ainsi que mot_de_passe_compte_catchall (pour ces deux derniers il faut garder les quotes).

Ensuite il faut configurer postfix.
Dans mon cas de figure, les "clients" ont un compte sur la machine serveur (tu pourrais fignoler en utilisant une base "ldap", ou "xsql"), compte sans shell (ou plutot un shell du genre "/bin/false", pour qu'ils ne puissent se logguer sur ma machine). Le domaine de la machine en local étant different du domaine des mails entrants .

Ex: jean.denis@pollux.net (addresse que je donne sur le net) correspond au compte jdenis@pollux.fra en local.
karl.malaune@pollux.net à kmalaune@pollux.fra

Il faut modifier (ou le créer) pour que cela marche:
/etc/postfix/canonical, pour que lors de d'envoie d'un mail vers l'internet, posfix remplace (par exemple) kmalaune@pollux.fra par karl.malaune@pollux.net

 jdenis        jean.denis@pollux.net
kmalaune       karl.malaune@pollux.net 



En inverse il faut faire correspondre les adresse externes aux adresses internes, et c'est le role de /etc/postfix/virtual

 jean.denis@pollux.net jdenis
karl.malaune@pollux.net      kmalaune 


Aprés il est bien qu'un mail envoyé pour une personne en interne ne vas pas sur l'internet pour retourner (bon c vrai que maintenant avec les connections haut debits ...), par exemple quand Denis envoie un mail à Karl
C'est le role de /etc/postfix/transport

 jean.denis@pollux.net    local:
karl.malaune@pollux.net local:


Ne pas oublier à chaque modif de ces fichiers de faire un "postmap /etc/postfix/canonical; /et c/postfix/virtual .....)

Ensuite il faut dire à postfix d'utiliser ces fichiers en modifiant /etc/postfix/main.cf, qui doit contenir (entre autres):

 sender_canonical_maps = hash:/etc/postfix/canonical 
virtual_maps = hash:/etc/postfix/virtual
transport_maps = hash:/etc/postfix/transport



Bon c'est juste une petite idée, qui n'est sans doute pas ce qui fait de mieux, mais en tous cas j'ai vu marché et ça depanne bien ...
0
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
6 avril 2006 à 15:49
Salut,

La fonctionnalité multidrop de fetchmail va permettre la distribution des e-mails provenant d'une même boite pop sur des comptes locaux différents pourvu que ceux-ci puissent être identifiés comme tu l'indiques (c'est à dire que les destinataires soient différents dans les champs To: Cc: ou Bcc:).

Bien que "scolopendre" n'ait pas été très clair, je me demande s'il ne veut pas dire que tous les e-mails arrivant sur une même boite sont également destinés à la même adresse e-mail, et qu'ils doivent être répartis entre 6 personnes, chacune d'elle recevant un e-mail à tour de rôle.


Dal
0
Merci DAL ,c 'est effectivement ce que pense.
Pour Moi , un BAL ne peut avoir qu'une seule adresse donc par voie de conséquence qu' un seul user.
donc je précise : 1 bal d 'un utilisateur en réception.cette BAL doit être redirigée vers la BAL d'un utilisateur parmi 6 autres .
donc pas de possibilité de tri par les champs habituels.
Solution envisagée : incrementation d 'un compteur et modulo sur ce compteur pour redistribution .
0
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
10 avril 2006 à 17:34
Salut,

Tu devrais pouvoir accomplir celà avec procmail en utilisant une variable dans procmailrc (qui devient aussi de ce fait une variable système, donc dont le contenu est conservé d'un filtrage à un autre).

Je pense que la variable devrait pouvoir être incrémentée par procmail (avec un truc du style N=`expr $N + 1`) et testée par procmail comme toute autre condition.


Dal
0
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
12 avril 2006 à 15:50
Re,

En fait c'est un peu plus compliqué, car Procmail n'exporte les variables créées que dans le cadre d'une exécution donnée (de son propre processus). Pour conserver la valeur une fois le processus procmail terminé, je pense qu'il faut la stocker dans un fichier.

$ cd $HOME/mail
$ echo "1" > cpt.txt

$ cd ..
$ cat .procmailrc
VERBOSE=yes
LOGABSTRACT=all
MAILDIR=$HOME/mail
PMDIR=$MAILDIR
LOGFILE=$PMDIR/logs
CPTFILE=$MAILDIR/cpt.txt

:0
{
  :0
  {
    # Recuperation du compteur
    CPT=`cat ${CPTFILE}`

    # Incrementation de la valeur a stocker
    NEXTCPT=`expr ${CPT} + 1`

    # Stockage
    RIEN=`echo ${NEXTCPT} > ${CPTFILE}`

  }
  # Tests
  :0:
  * CPT ?? 1
    matches1
  :0:
  * CPT ?? 2
    matches2
  :0:
  * CPT ?? 3
    matches3
  :0:
  * CPT ?? 4
    matches4
  :0:
  * CPT ?? 5
    matches5
  :0:
  * CPT ?? 6
  {
    :0c
    RIEN=`echo "1" > ${CPTFILE}`

    :0:
    matches6
  }
}

:0
default

C'est un procmailrc de test qui marche chez moi. Les e-mails sont répartis en 6 boites mails unix dans $MAILDIR ("default" est là pour attraper ce qui reste, mais rien ne devrait arriver là).

Pour forwarder à un autre user au lieu de copier dans le compte, tu changes simplement les tests :
  :0:
  * CPT ?? 1
    matches1

par
  :0
  * CPT ?? 1
  ! user1

... et ainsi de suite.

Procmail est assez complexe (et je suis loin d'être expert), alors, il y a peut être moyen de faire mieux, mais c'est ce qui m'est venu à l'esprit :)

Si quelque chose te semble clocher, regarde les logs.

Teste le en ligne de commande avec un fichier comportant un e-mail de test bidon, avant de le mettre en réel, la ligne de commande ressemblera à çà :

procmail /home/toto/testprocmailrc < test-mail.txt


Dal
0
Bonjour DAL,
Maintenant j 'ai un souci de renvoi sur les BAL des utilisateurs.
Par Fetchmail , je récupére la BAL qui m'intéresse.( titi@toto.tutu.fr)
Par Procmail , et le filtrage , j' adresse bien les divers utilisateurs avec le compteur.
Les messages sont stockés sous /var/spool/mail/.(U1,U2,U3,U4,U5)
Mais je n'arrive pas à renvoyer ces mails sur des adresses extérieures par postfix bien que j'ai modifié le fichier canonical
de la facon suivante:
U1 U1@toto.tutu.fr
U2 U2@toto.tutu.fr
U3 U3@toto.tutu.fr
U4 U4@toto.tutu.fr
U5 U5@toto.tutu.fr
0
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
21 avril 2006 à 17:27
Merci de ton feed-back.

Celà me semble plutôt être un boulot pour procmail, que tu l'utilises déjà...

Au lieu de faire un forward aux utilisateurs locaux avec procmail en faisant

! user1

pourquoi n'utilises-tu pas procmail pour réadresser directement les e-mails aux adresses en question ?

! U1@toto.tutu.fr

Tu peux même combiner les deux en mettant des accolades si tu veux faire les deux et en faisant une copie du message (il est possible que celà marche aussi sans accolades ni copie, mais avec une virgule entre les deux adresses sur une même ligne, mais je n'en suis pas sûr... à tester).


Dal
0
C 'est OK ...
effectivement en remplaçant les valeurs ! toto par les adresses mails c 'est OK.

donc Fetchmail pour récupérer à partir d 'une BAL;
procmail pour rediriger ;
et postfix avec les modifs de bases ( pas de fichiers canonical à modifier )
et c'est top

Merci pour tes conseils
Maintenant je vais fignoler.
@+ Scolopendre
0