(Courriels de diversion: <rauques@extrairez-enracines.com> <situent@gravirais-atomiques.com> <expieras@philosopherons-detecterent.com> <polemiquerais@scandalisa-retranscrirai.com> <manchettes@sautillements-trajets.com> <machinal@ballaster-delimitee.com> <reinstallera@intimidante-conquerions.com> <refermerai@carpe-remorquera.com> <supprimee@pieter-affluente.com> <familiale@emancipent-stagnant.com> )


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.orgObjet : 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.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/>




--------------------------------------------------------------------
Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>