Forum Programmation.shell ajouter dans un serveur ldap les destinataires d'un mail

Posté par  (site web personnel) .
Étiquettes :
0
22
juin
2012

Afin de pallier l'impossibilité d'écrire dans un annuaire LDAP avec Thunderbird, j'essaye de le faire à la main directement depuis mon serveur.

Mes mails sont au format MAILDIR, donc un fichier par mail. Pour les récupérer, pas de soucis. Ne garder que les lignes qui m'intéressent, pas trop de problèmes non plus. Par contre, isoler les adresses mails de l'entête puis les passer dans une commande ldapadd, là ca coince.

Ca c'est une ligne To: d'un mail :

To: "une personne" <unmec@unserveur.tld>,
 une autre personne <unautremec@unautreserveur.tld>,
 encore, quelqu'un <undernierexemple@quelquepart.tld>

J'ai essayé de faire ca propre, en utilisant même un outil qui s'appelle mu avec lequel je peux reformatter les destinataires To, CC et BCC sur une ligne chacun, mais arrivé au découpage sans me casser les dents est trop difficile pour moi, je ne connais pas assez perl ou sed ou encore les expressions régulières. J'ai essayé de coder un petit programme en C qui à partir d'une ligne To: blabla… à le découper plus proprement en une adresse par ligne, mais si j'essaye de passer en paramètre la sortie à un autre programme, il me le sert mal. Exemple :

for e in `mon_programme_de_decoupage "\"une personne\" <unmec@unserveur.tld>, une autre personne <unautremec@unautreserveur.tld>, encore, quelqu'un <undernierexemple@quelquepart.tld>"`
do echo $e
done

me sortira

"une
personne"
<unmec@unserveur.tld>
[etc.]

alors que la commande mon_programme_de_decoupage "\"une personne\" unmec@unserveur.tld, une autre personne unautremec@unautreserveur.tld, encore, quelqu'un undernierexemple@quelquepart.tld" me sort

"une personne" <unmec@unserveur.tld>
une autre personne <unautremec@unautreserveur.tld>
encore, quelqu'un <undernierexemple@quelquepart.tld>

Bref, je suis bloqué là, est-ce que quelqu'un pourrait me sortir de là en m'expliquant où pèche mon for e in, ou m'expliquer comment faire pour que chaque ligne de la sortie dudit programme soit prise toute entière avec les espaces dans le ldapadd, ou sinon me donner une autre méthode sûrement plus simple pour ce genre de truc ?

Merci d'avance

Suivre le flux des commentaires

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