(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> )
Voila ce que me donne outlook : ------------------------------------- Return-Path: <fax@hilaire.fr>Delivered-To: pmaladjian@hilaire.frReceived: (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.frSubject: 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 2004X-Original-To: pmaladjian@dom.hilaireDelivered-To: pmaladjian@dom.hilaireMIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0012_01BF3CD4.528144C0" To: pmaladjian@dom.hilaireSubject: 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.orgObjet : 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/>