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
# Le coup classique de l'espace....
Posté par ze_lionix (site web personnel) . Évalué à 4.
En fait en faisant un "for" tu découpes aussi par espace….
=> passe en "while read" !
Je te laisse chercher un peu la syntaxe sur le grand internet, c'est formateur ! :o)
Fuse : j'en Use et Abuse !
[^] # Re: Le coup classique de l'espace....
Posté par apkwa . Évalué à 2.
Oui, ou alors changer le séparateur avant le for avec un IFS=$'\n'
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.