(Courriels de diversion: <approuverai@somnolent-ecloraient.com> <repugner@bolides-partagerons.com> <sensibilisant@rauques-extrairez.com> <enracines@situent-gravirais.com> <atomiques@expieras-philosopherons.com> <detecterent@polemiquerais-scandalisa.com> <retranscrirai@manchettes-sautillements.com> <trajets@machinal-ballaster.com> <delimitee@reinstallera-intimidante.com> <conquerions@refermerai-carpe.com> )
Je ne connais pas les différents types d'encodage. Ce que je suppose : mettre "quoted-printable" ne suffit pas car il faut aussi encoder le body de manière correcte ("é" -> "=E9"), ce qui n'est peut-être pas fait ici. Il y a peut-être un encodage "16bit" qui permettrait de bien lire directement les caractères d'ascii étendu. Le vendredi 23 Avril 2004 08:20, Philippe MALADJIAN a écrit : > J'ai déjà essayé en quoted-printable, même punission :( > > > -----Message d'origine----- > De : Thomas Soumarmon [mailto:thomas.soumarmon@cogitae.net]> Envoyé : jeudi 22 avril 2004 18:16 > À : pmaladjian@hilaire.fr; linux-31@CULTe.org> Objet : Re: [linux-31] RE : [linux-31] Hylafax vs notify.awk > > > > Le mail envoyé à la liste donne lui : > > Content-Type: text/plain; > charset="iso-8859-1" > Content-Transfer-Encoding: quoted-printable > > Dans le mail erroné : > > Content-Type: text/plain; > charset="iso-8859-1" > Content-Transfert-Encoding: 8bit > > > > Peut-être faut-il utilisé le quoted-printable plutôt que le 8bit ? > L'iso-8859-1 en tout cas me semble bon. > > A noter que dans le cas du quoted-printable, on a alors les mots "envoyé > à" écrit "envoy=E9 =E0". > > > > > > ------------------------------------------------------------------------ > --- > Thomas Soumarmon. > Ingénieur Développement & Logiciels Libres > ------------------------------------------------------------------------ > --- > COGITAE //www.cogitae.net/ > ------------------------------------------------------------------------ > --- > tel: 05.34.14.39.39 - fax: 05.34.14.39.31 > ------------------------------------------------------------------------ > --- > > ----- Original Message ----- > From: "Philippe MALADJIAN" <pmaladjian@hilaire.fr>> To: <linux-31@CULTe.org>> Sent: Thursday, April 22, 2004 4:14 PM > Subject: [linux-31] RE : [linux-31] Hylafax vs notify.awk > > > Voila ce que me donne outlook : > ------------------------------------- > Return-Path: <fax@hilaire.fr>> Delivered-To: pmaladjian@hilaire.fr> Received: (qmail 2131 invoked by uid 505); 22 Apr 2004 07:06:24 -0000 > Received: from alyon-108-1-4-123.w81-48.abo.wanadoo.fr (HELO > dom.hilaire) (81.48.205.123) > by mx3.ovh.net with SMTP; 22 Apr 2004 07:06:24 -0000 > Received: by dom.hilaire (Postfix, from userid 10) > id 41C7137F56; Thu, 22 Apr 2004 09:06:10 +0200 (CEST) > MIME-Version: 1.0 > Content-Type: multipart/mixed; > boundary="----=_NextPart_000_0012_01BF3CD4.528144C0" > To: pmaladjian@hilaire.fr> Subject: Fax facsimile job 89 vers 0478260203 envoyé > From: "Fax Manager" <fax@hilaire.fr>> Message-Id: <20040422070610.41C7137F56@dom.hilaire>> Date: Thu, 22 Apr 2004 09:06:10 +0200 (CEST) > --------------------------------------- > > > Voila ce que me dit un mail envoyé à une boite local : > ---------------------------------------- > From fax@hilaire.fr Thu Apr 22 16:12:03 2004> X-Original-To: pmaladjian@dom.hilaire> Delivered-To: pmaladjian@dom.hilaire> MIME-Version: 1.0 > Content-Type: multipart/mixed; > boundary="----=_NextPart_000_0012_01BF3CD4.528144C0" > To: pmaladjian@dom.hilaire> Subject: Fax facsimile job 92 vers 0478260203 envoyé > From: "Fax Manager" <fax@hilaire.fr>> Date: Thu, 22 Apr 2004 16:12:03 +0200 (CEST) > > This is a multi-part message in MIME format > > ------=_NextPart_000_0012_01BF3CD4.528144C0 > Content-Type: text/plain; > charset="iso-8859-1" > Content-Transfert-Encoding: 8bit > > Votre fax vers 0478260203 a été envoyé correctement. > > Pages: 1 > Qualité: Normal > Largeur de page: 194 (mm) > Hauteur de page: 281 (mm) > Vitesse: 14400 bit/s > Format de données: 2-D MR > Appels: 4 (total appels tentés) > Soumis depuis: 192.168.5.240 > JobID: 92 > GroupID: 92 > CommID: c000000118 > > Temps total de traitement 1:02. > ------=_NextPart_000_0012_01BF3CD4.528144C0 > Content-Type: application/pdf; > name="facsimile job 92.pdf" > Content-Transfert-Encoding: base64 > Content-Disposition: inline; > filename="facsimile job 92.pdf" > [...] > ------=_NextPart_000_0012_01BF3CD4.528144C0-- > ------------------------------------------------------------------------ > ------------ > > > > -----Message d'origine----- > De : Thomas Soumarmon [mailto:thomas.soumarmon@cogitae.net]> Envoyé : jeudi 22 avril 2004 13:35 > À : linux-31@CULTe.org> Objet : Re: [linux-31] Hylafax vs notify.awk > > > > C'est possible que ce soit l'encodage au niveau du mail qui soit > incorrect. Il faudrait pour vérifier cela avoir le source du mail. > > > ------------------------------------------------------------------------ > --- > Thomas Soumarmon. > Ingénieur Développement & Logiciels Libres > ------------------------------------------------------------------------ > --- > COGITAE //www.cogitae.net/ > ------------------------------------------------------------------------ > --- > tel: 05.34.14.39.39 - fax: 05.34.14.39.31 > ------------------------------------------------------------------------ > --- > > ----- Original Message ----- > From: "Philippe MALADJIAN" <pmaladjian@hilaire.fr>> To: <linux-31@CULTe.org>> Sent: Thursday, April 22, 2004 10:47 AM > Subject: [linux-31] Hylafax vs notify.awk > > > Salut, j'ai un soucis avec hylafax, enfin c'est surtout avec le fichier > notify.awk. J'ai fait les modification données dans ce message : > http://www.culte.org/listes/linux-31/2004-01/msg00417.html, l'envoie de > mail avec pièces jointes marche bien. Ce qui me pose problème c'est le > codage de caractère du champs subject et aussi le corps du message. Ca > ressemble à ca : > ------------------------------------------------------- > Votre fax vers 0478260203 a été envoyé correctement. > > Pages: 1 > Qualité: Normale > Largeur de page: 194 (mm) > Hauteur de page: 281 (mm) > Vitesse: 14400 bit/s > Format de données: 2-D MR > Calls: 2 (total appels tentés) > Soumis depuis: 192.168.5.240 > Numéro de JOB: 70 > Groupe de JOB: 70 > CommID: c000000091 > File: docq/doc70.ps > > Temps total de traitement 1:01. > -------------------------------------------------------- > J'ai essayé en passant le codage à 8 bits mais rien à faire. Chose > encore plus bizarre, j'utilise mon propre postfix pour permettre à > hylafax d'envoyer les mails. Lorsque j'envoie sur une boite local et que > je relève le mail en console, pas de soucis, j'ai bien les caractères, > mais si j'envoie le mail sur une boite externe (ovh ou free) je n'ai > plus les caractères. J'ai essayé aussi sur un autre pc, mais même > résultat. > > J'ai modifié un peu le fichier donné dans le message précendent : > --------------------------------------------------------- > #! /bin/sh > function printItem(fmt, tag, value) > { > printf "%14s: " fmt "\n", tag, value; > } > > function printBanner(banner) > { > print ""; > print " ---- " banner " ----"; > print ""; > } > > function docType(s) > { > if (match(s, "\.cover")) > return "PostScript cover page"; > else if (match(s, "\.ps")) > return "PostScript"; > else if (match(s, "\.tif")) > return "TIFF"; > else if (match(s, "\.pdf")) > return "PDF"; > else if (match(s, "\.pcl")) > return "PCL"; > else > return "Unknown document type"; > } > > # > # Construct a return-to-sender message. > # > function returnToSender() > { > printBanner("Unsent job status"); > printItem("%s", "Destination", number); > printItem("%s", "JobID", jobid); > printItem("%s", "GroupID", groupid); > printItem("%s", "Emetteur", sender); > printItem("%s", "Adresse mail", mailaddr); > if (commid != "") > printItem("%s", "CommID", commid); > if (modem != "any") > printItem("%s", "Modem", modem); > printItem("%s", "Soumis depuis", client); > if (jobType == "facsimile") { > printItem("%u (mm)", "Largeur de page", pagewidth); > printItem("%.0f (mm)", "Hauteur de page", pagelength); > printItem("%.0f (lpi)", "Résolution", resolution); > } > printItem("%s", "Status", status == "" ? " (nothing available)" : > status); > printItem("%u (échanges avec l\'équipement distant)", "Dialogues", > tottries); > printItem("%u (numérotations consécutives vers la destination)", > "Numérotations", ndials); > printItem("%u (total appels tentés)", "Appels", totdials); > if (jobType == "facsimile") { > printItem("%u (pages transmises)", "Pages", npages); > printItem("%u (Total pages à transmettre)", "Total Pages", > totpages); > printItem("%u (Tentatives envoie page courante)", "Tentatives", > ntries); > # printItem("%u (directory of next page to send)", "Dirnum", dirnum); > if (nfiles > 0) { > printBanner("Documents soumis à transmission"); > print "Les documents suivants ont été soumis à la transmission > et sont"; > print "disponibles sur le serveur jusqu\'à ce qu\'ils soient > automatiquement"; > print "supprimés lorsque ce fax est purgé (" doneop "d)."; > print "" > printf "%-20s %8s %s\n", "Fichier", "Taille", "Type"; > for (i = 0; i < nfiles; i++) { > "wc -c " files[i] | getline; > printf "%-20s %8d %s\n", files[i], $1, docType(files[i]); > close("wc -c " files[i]); > } > } > } else if (jobType == "pager") { > if (npins != 0) { > printBanner("Pages en échec de transmission"); > for (i = 0; i < npins; i++) > printf "%15s\n", "PIN " pins[i]; > } > if (nfiles != 0) { > printBanner("Message text"); > while ((getline <files[0]) > 0) > print $0; > close(files[0]); > } > } > } > > function returnTranscript() > { > printBanner("Rapport de session ci-dessous"); > comFile = "log/c" commid; > if ((getline <comFile) > 0) { > do { > if (index($0, "-- data") == 0) > print $0 > } while ((getline <comFile) > 0); > close(comFile); > } else { > printf " Aucun rapport disponible"; > if (commid != "") > printf "(CommID c" commid ")"; > print "."; > } > } > > function printStatus(s) > { > if (s == "") > print "<no reason recorded>"; > else > print s > } > > function putHeaders(subject) > { > # print "To: " mailaddr; > # print "Subject: " subject; > # print ""; > # printf "Your " jobType " job to " number; > > print "MIME-Version: 1.0"; > print "Content-Type: multipart/mixed;"; > print " boundary=\"----=_NextPart_000_0012_01BF3CD4.528144C0\""; > print "To: " mailaddr; > print "Subject: " subject; > print "From: \"Fax Manager\" <fax@toto.fr>";> print ""; > print "This is a multi-part message in MIME format"; > print ""; > print "------=_NextPart_000_0012_01BF3CD4.528144C0"; > print "Content-Type: text/plain;"; > print " charset=\"iso-8859-1\""; > print "Content-Transfert-Encoding: 8bit"; > print ""; > printf "Votre fax vers " number; > } > > BEGIN { nfiles = 0; > npins = 0; > pagewidth = 0; > pagelength = 0; > resolution = 0; > jobType = "facsimile"; > signalrate = "unknown"; > dataformat = "unknown"; > doneop = "default"; > pagernum = "unknown"; > commid = ""; > } > /^jobid/ { jobid = $2; } > /^groupid/ { groupid = $2; } > /^state/ { state = $2+0; } > /^doneop/ { doneop = $2; } > /^number/ { number = $2; } > /^external/ { number = $2; } # override unprocessed number > /^sender/ { sender = $2; } > /^mailaddr/ { mailaddr = $2; } > /^jobtag/ { jobtag = $0; sub("jobtag:", "", jobtag); } > /^jobtype/ { jobType = $2; } > /^status/ { status = $0; sub("status:", "", status); > if (status ~ /\\$/) { > sub("\\\\$", "\n", status); > while (getline > 0) { > status = status $0; > sub("\\\\$", "\n", status); > if ($0 !~ /\\$/) > break; > } > } > } > /^resolution/ { resolution = $2; } > /^npages/ { npages = $2; } > /^totpages/ { totpages = $2; } > /^dirnum/ { dirnum = $2; } > /^commid/ { commid = $2; } > /^ntries/ { ntries = $2; } > /^ndials/ { ndials = $2; } > /^pagewidth/ { pagewidth = $2; } > /^pagelength/ { pagelength = $2; } > /^signalrate/ { signalrate = $2; } > /^dataformat/ { dataformat = $2; } > /^modem/ { modem = $2; } > /^totdials/ { totdials = $2; } > /^tottries/ { tottries = $2; } > /^client/ { client = $2; } > /^[!]*post/ { files[nfiles++] = $4; } > /^[!]*tiff/ { files[nfiles++] = $4; } > /^[!]*pcl/ { files[nfiles++] = $4; } > /^page:/ { pins[npins++] = $4; } > /^[!]page:/ { pagernum = $4; } > /^data:/ { files[nfiles++] = $4; } > /^poll/ { poll = " -p"; } > END { > if (jobtag == "") > jobtag = jobType " job " jobid;; > if (doneop == "default") > doneop = "remove"; > if (jobType == "pager") > number = pagernum; > if (why == "done") { > putHeaders("Fax " jobtag " vers " number " envoyé"); > print " a été envoyé correctement."; > print ""; > if (jobType == "facsimile") { > printItem("%u", "Pages", npages); > if (resolution == 196) > printItem("%s", "Qualité", "Fine"); > else > printItem("%s", "Qualité", "Normal"); > printItem("%u (mm)", "Largeur de page", pagewidth); > printItem("%.0f (mm)", "Hauteur de page", pagelength); > printItem("%s", "Vitesse", signalrate); > printItem("%s", "Format de données", dataformat); > } > if (tottries != 1) > printItem("%s (échanges avec l\'équipement distant)", > "Dialogues", tottries); > if (totdials != 1) > printItem("%s (total appels tentés)", "Appels", totdials); > if (modem != "any") > printItem("%s", "Modem", modem); > printItem("%s", "Soumis depuis", client); > printItem("%s", "JobID", jobid); > printItem("%s", "GroupID", groupid); > printItem("%s", "CommID", "c" commid); > printf "\nTemps total de traitement " jobTime ".\n"; > if (status != "") { > print " Informations complémentaires:\n " status; > returnTranscript(); > } > > print "------=_NextPart_000_0012_01BF3CD4.528144C0"; > print "Content-Type: application/pdf;"; > print " name=\"" jobtag ".pdf\""; > print "Content-Transfert-Encoding: base64"; > print "Content-Disposition: inline;"; > print " filename=\"" jobtag ".pdf\""; > print ""; > system("/usr/bin/ps2pdf /var/spool/hylafax/" files [0] " > /var/spool/hylafax/pdfs/fax.pdf 1>/dev/null 2>/dev/null"); > system("/usr/bin/mimencode /var/spool/hylafax/pdfs/fax.pdf"); > system("/usr/bin/rm /var/spool/hylafax/pdfs/fax.pdf"); > print "------=_NextPart_000_0012_01BF3CD4.528144C0--"; > > } else if (why == "failed") { > putHeaders("Fax " jobtag " vers " number " échoué"); > printf " a échoué. Raison de l\'échec :\n "; > printStatus(status); > # returnTranscript(); > returnToSender(); > } else if (why == "rejected") { > putHeaders("Fax " jobtag " vers " number " rejeté"); > printf " a été rejeté pour la raison suivante :\n "; > printStatus(status); > returnToSender(); > } else if (why == "blocked") { > putHeaders("Fax " jobtag " vers " number " bloqué"); > printf " est différé à l\'envoi pour la raison suivante :\n "; > printStatus(status); > print ""; > print "Ce fax va être traîté dès que possible." > } else if (why == "requeued") { > putHeaders("Fax " jobtag " vers " number " remis en file > d\'attente"); > printf " n\'a pas été envoyé pour la raison suivante :\n "; > printStatus(status); > print ""; > print "Nouvelle tentative à : " nextTry "." > returnTranscript(); > } else if (why == "removed" || why == "killed") { > putHeaders("Fax " jobtag " vers " number " retiré de la file > d\'attente"); > print " a été retiré de la file d\'attente."; > if (why == "killed") > returnToSender(); > } else if (why == "timedout") { > putHeaders("Fax " jobtag " vers " number " échoué"); > print " n\'a pas pu être envoyé avant l\'échéance prévue. > (timeout)"; > returnToSender(); > } else if (why == "format_failed") { > putHeaders("Fax " jobtag " vers " number " échoué"); > print " n\'a pas été envoyé car la conversion du document" > print "en fax a échoué. Le diagnostic du convertisseur est :\n"; > print status "\n"; > printf "Vérifiez la validité de vos documents PostScript (police non > standard) %s.\n", > "et/ou syntaxe incorrecte"; > returnToSender(); > } else if (why == "no_formatter") { > putHeaders("Fax " jobtag " vers " number " échoué"); > print " n\'a pas pu être envoyé car"; > print "le script de conversion n\'a pas été trouvé."; > returnToSender(); > } else if (match(why, "poll_*")) { > putHeaders("Notice about " jobtag); > printf ", a polling request,\ncould not be completed because "; > if (why == "poll_rejected") > print "the remote side rejected your request."; > else if (why == "poll_no_document") > print "no document was available for retrieval."; > else if (why == "poll_failed") > print "an unspecified problem occurred."; > print ""; > printf "Processing time was %s.\n", jobTime; > returnTranscript(); > } else { > putHeaders("Notice about " jobtag); > print " had something happen to it." > print "Unfortunately, the notification script was invoked", > "with an unknown reason" > print "so the rest of this message is for debugging:\n"; > print "why: " why; > print "jobTime: " jobTime; > print "nextTry: " nextTry; > print ""; > print "This should not happen, please report it to your > administrator."; > returnTranscript(); > returnToSender(); > } > } > --------------------------------------------------------- > > > -------------------------------------------------------------------- > Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/> > > > > -------------------------------------------------------------------- > Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/> > > > -------------------------------------------------------------------- > Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/> > > > > > -------------------------------------------------------------------- > Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/> -- --------------------------------------------- Thomas Soumarmon. Ingénieur Développement & Logiciels Libres --------------------------------------------- COGITAE //www.cogitae.net/ --------------------------------------------- tel: 05.34.14.39.39 - fax: 05.34.14.39.31 --------------------------------------------- -------------------------------------------------------------------- Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>