Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/12/2006, à 14:41

kerozen54

[résolu] serveur postfix - pb de pièces jointes dans l'email-

Bonjour à tous

je viens vous passer un petit coucou après avoir fraichement installé ma dedibox sous ubuntu edgy.

j'y ai installé apache, msql,...et surtout postfix.

hé bien postfix fonctionne, il m'envoie bien les mails (configuration d'origine, rien touché encore), mais le format des mails reçus est étrange:

lorsque le mail contient une pièce jointe, celle ci s'affiche dans le mail, et non en pièce jointe:

par exemple, ma pièce jointe cv_ben.txt devrais être attaché à l'email, et non incrusté comme ci desous:


MIME-Version: 1.0

Content-Type: multipart/mixed; boundary="-----=232df574b6120f8fa268a85eb9495f0b"

Message-Id: <20061213105250.4736C10FCD99@test.dedibox.fr>
Date: Wed, 13 Dec 2006 11:52:50 +0100 (CET)
Return-Path: www-data@test.dedibox.fr
X-OriginalArrivalTime: 13 Dec 2006 10:50:45.0913 (UTC) FILETIME=[8B044090:01C71EA4]




-------=232df574b6120f8fa268a85eb9495f0b
Content-Type: text/plain; charset="iso-8859-1"

Content-Transfer-Encoding:8bit



Information sur le contact :
e-mail :
commentaire : blablabla



-------=232df574b6120f8fa268a85eb9495f0b
Content-Type: application/octet-stream; name="cv_ben.txt"

Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="cv_ben.txt"


anVzdGUgdW4gdGVzdCwgbmUgcGFzIGVuIHRlbmlyIGNvbXB0ZQ==



-------=232df574b6120f8fa268a85eb9495f0b--


P.S:
dans mon script php qui s'occupe d'envoyer l'email, j'ai essayé de remplacer Content-Disposition: inline par Content-Disposition: attachment; mais cela ne change rien....

Sauriez vous par hasard ou peut bien se cacher le parametre qui m'embete ?

merci par avance de votre aide...

Dernière modification par kerozen54 (Le 21/12/2006, à 14:03)

Hors ligne

#2 Le 13/12/2006, à 16:41

Uggy

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

kerozen54 a écrit :

par exemple, ma pièce jointe cv_ben.txt devrais être attaché à l'email, et non incrusté

Tout est normal... les pièces jointes "attachée" sont bien du texte encodé généralement en base64 (pour être 7 bits).

Avec quel client mail tu ouvres tes mails ?

Pour plus d'informations tu peux commencer du coté de la RFC 2822.

Hors ligne

#3 Le 13/12/2006, à 16:46

kerozen54

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

hé bien j'ouvre les mails avec lotus notes

ce que je trouve bizarre, c'est que avant de basculer le site sur la dedibox avec postfix, les mêmes scripts php, avec les mêmes fichiers attachés apparaissaient correctement comme des pièces jointes dans le mail.

avec postfix, les mails sont "incrustés" et je ne vois vraiment pas comment faire pour les obtenir en pièce jointe, hormis utiliser un autre mta peut-être ?

Hors ligne

#4 Le 13/12/2006, à 16:53

Uggy

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

postfix se contente de transférer le mail (donc le texte..qu'il soit "en clair" ou encodé en base64) fourni par ton script...

- A qui/quoi fait appel ton script pour envoyer le mail a Postfix ??
- Fait le test avec une piece jointe autre que txt
- Ouvre ton mail avec autre chose que Notes pour tester

Hors ligne

#5 Le 13/12/2006, à 17:12

kerozen54

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

alors, le script est un script php.
la composition de l'email se fait de cette manière:
//---------------------------------
        // 2nde partie du message
        // Le(s) fichier(s)
        //---------------------------------
        // Tout d'abord lire le contenu du fichier
       
        if (is_dir($Tmp)){
            //si le répertoire existe
            $dir = opendir($Tmp);
            //on affiche tous les fichiers du répertoire
            foreach (glob($Tmp."/*.*") as $filename)
            {
                // echo "<br />".$filename."- - -<br />";
                $tab = explode("/",$filename) ;
                $nom_fichier = $tab[sizeof($tab)-1];
                $file = $Tmp."/".$nom_fichier ;
                // echo $file;
               
                $fp = fopen($file, "rb");   // b c'est pour les windowsiens
                $attachment = fread($fp, filesize($file));
                fclose($fp);
               
                // puis convertir le contenu du fichier en une chaîne de caractère
                // certe totalement illisible mais sans caractères exotiques
                // et avec des retours à la ligne tout les 76 caractères
                // pour être conforme au format RFC 2045
                $attachment = chunk_split(base64_encode($attachment));
   
                // Ne pas oublier que chaque partie du message est séparé par une frontière
                $msg .= "--$boundary\r\n";
                // Et pour chaque partie on en indique le type
                $msg .= "Content-Type: application/octet-stream; name=\"".$nom_fichier."\"\r\n";
                // Et comment il sera codé
                $msg .= "Content-Transfer-Encoding: base64\r\n";
                // Petit plus pour les fichiers joints
                // Il est possible de demander à ce que le fichier
                // soit si possible affiché dans le corps du mail
                $msg .= "Content-Disposition: inline; filename=\"".$nom_fichier."\"\r\n";
                // Il est indispensable d'introduire une ligne vide entre l'entête et le texte
                $msg .= "\r\n";
                // C'est ici que l'on insère le code du fichier lu
                $msg .= $attachment . "\r\n";
                $msg .= "\r\n\r\n";


bref, un script qui fonctionne correctement sur un autre serveur (dont je ne peux avoir la configuration malheureusement)

j'ai déjà essayé avec un .doc par exemple, et pareil même chose, uniquement le contenu du .doc "incrusté" dans le mail

je vais essayer avec un autre client en effet.

Hors ligne

#6 Le 13/12/2006, à 17:21

kerozen54

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

bon, je viens de réessayer avec un mail dont la pièce jointe est une image (un jpeg de 159 Ko)

je l'ai envoyé sur une adresse accessible par outlook et sur une adresse @gmail.com.
le résultat est toujours le même.

Hors ligne

#7 Le 13/12/2006, à 18:26

kerozen54

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

je viens d'installer sendmail sans autre configuration (il m'a viré postfix, forcement....) et je reçois les mails correctement maintenant..

De plus, je viens de m'apercevoir que postfix créer l'email un peu n'importe comment...le reply to se retrouvait dans le coprs du message par exemple...

reste à configurer sendmail correctement, et là, je sens que ca ne va pas être du gâteau..

à moins que l'un de vous sache d'où peut venir mn problème avec postfix ?

Hors ligne

#8 Le 13/12/2006, à 19:19

Uggy

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

kerozen54 a écrit :

à moins que l'un de vous sache d'où peut venir mn problème avec postfix ?

Il nous faut:
Le resultat d'un "postconf -n"
Les logs correspondants au passage de ton mail

Hors ligne

#9 Le 14/12/2006, à 15:39

kerozen54

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

bon, maintenant que j'ai installé sendmail, le boss m'a demandé de mettre en production le serveur.

donc je ne peux plus faire le postconf -n

ce que je peux dire, c'est que la distribution est une ubuntu 6.10 livrée sur les dédibox et que l'installation de postfix était standard (ie pas de manipulation des fichiers d'origines) en faisant apt-get install postfix

je compte bien me monter une machine de test avec les mêmes paramètres que la dedibox...je verrai bien le résultat.

Hors ligne

#10 Le 14/12/2006, à 17:13

Uggy

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

Je ne sais pas si c'est normal que ton script mettre une ligne vide entre ces 2 la ?
Content-Type: text/plain; charset="iso-8859-1"

Content-Transfer-Encoding:8bit

Dernière modification par Uggy (Le 14/12/2006, à 17:14)

Hors ligne

#11 Le 14/12/2006, à 18:14

kerozen54

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

si, à cete endroit là, c'est normal, c'est juste pour y mettre le contenu du formulaire d'envoi de l'email.

c'est plus bas que ca ne colle pas...

par contre, avec sendmail, aucun problème.

Bon, là, le site est presque en production et il fonctionne, donc je prefere ne plus trop y toucher.

à la rigueur, un bon backup de toute ma config, puis je réinstalle postfix (j'ai dû le faire déjà 10 fois maintenant) qui va me virer sendmail (là par contre, je ne connais pas les consequences) et je pourrais retester.

Hors ligne

#12 Le 14/12/2006, à 18:29

Uggy

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

kerozen54 a écrit :

si, à cete endroit là, c'est normal, c'est juste pour y mettre le contenu du formulaire d'envoi de l'email.

Pour moi, ce n'est pas normal.

Hors ligne

#13 Le 15/12/2006, à 14:54

kerozen54

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

bonjour,

voici le postconf -n de ma machine de test (réplique de la dédibox) ou le problème de pièces jointes se reproduit:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
mailbox_size_limit = 0
mydestination = virtual.dedibox.fr, localhost, localhost.localdomain, localhost
myhostname = ubuntu.virtualnetwork
mynetworks = 127.0.0.0/8
myorigin = /etc/mailname
recipient_delimiter = +
relayhost =
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtpd_use_tls = yes

je ne vois rien là dedans de bizarre (enfin, je suis pas un pro de posfix non plus)

Hors ligne

#14 Le 15/12/2006, à 15:24

Uggy

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

kerozen54 a écrit :

je ne vois rien là dedans de bizarre (enfin, je suis pas un pro de posfix non plus)

Il y a plein de trucs pas terrible mais rien qui pourrait causer ton pb.

Fais en sorte que ton script ne génère pas de ligne vides entre les lignes: "Content-Type" et "Content-Transfer-Encoding"

C'est qui qui l'a codé ce script ?

Hors ligne

#15 Le 15/12/2006, à 15:24

kerozen54

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

ha, et voici le mail.log

Dec 15 13:25:02 ubuntu postfix/master[6947]: daemon started -- version 2.3.3, configuration /etc/postfix
Dec 15 13:39:57 ubuntu postfix/pickup[6948]: 9278EE0F57: uid=33 from=<www-data>
Dec 15 13:39:57 ubuntu postfix/cleanup[7484]: 9278EE0F57: message-id=<20061215123957.9278EE0F57@ubuntu.virtualnetwork>
Dec 15 13:39:57 ubuntu postfix/qmgr[6952]: 9278EE0F57: from=<www-data@virtual.dedibox.fr>, size=134891, nrcpt=1 (queue active)
Dec 15 13:41:13 ubuntu postfix/smtp[7486]: 9278EE0F57: to=<myuser@test.fr>, relay=smtp.serv.com[81.18.12.17]:25, delay=76, delays=0.14/0.01/2/73, dsn=2.0.0, status=sent (250 z0fw1V00M4oVxgd0000000 mail accepted for delivery)
Dec 15 13:41:13 ubuntu postfix/qmgr[6952]: 9278EE0F57: removed

Hors ligne

#16 Le 15/12/2006, à 15:26

kerozen54

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

alors, le script fut codé par un webmestre.

ce script génère des emails valides sur d'autres serveurs web qui n'ont pas postfix.

avec sendmail, le même script sort des mails normaux, avec les pièces jointes normales.

je viens de reproduire la même erreur avec une installation de postfix par défaut (apt-get install postfix) sur une ubuntu 6.10 desktop.

Hors ligne

#17 Le 15/12/2006, à 15:27

Uggy

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

kerozen54 a écrit :

ha, et voici le mail.log

rien d'anormal dans les logs...
Je persiste a dire que Postfix envoi ce que ton script génère ... pour moi le pb vient de ton script.

Hors ligne

#18 Le 15/12/2006, à 15:30

Uggy

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

kerozen54 a écrit :

alors, le script fut codé par un webmestre.

J'espere qu'il a bien lu toutes les RFCs relatives a la messagerie...

kerozen54 a écrit :

ce script génère des emails valides sur d'autres serveurs web qui n'ont pas postfix.

Ca ca prouve pas que la cause est postfix

kerozen54 a écrit :

avec sendmail, le même script sort des mails normaux, avec les pièces jointes normales.

Peut etre Sendmail a une fonction qui corrige les défauts générés par ton script ?

kerozen54 a écrit :

je viens de reproduire la même erreur avec une installation de postfix par défaut (apt-get install postfix) sur une ubuntu 6.10 desktop.

Oui...

Hors ligne

#19 Le 15/12/2006, à 15:43

Uggy

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

tu peux tester l'envoi d'une piece jointe a travers Postfix sans utiliser ton script avec la commande:

mutt -a TonCv.odt aaa@bbb.tld < /dev/null

On verra si la piece jointe arrive correctement dans ce cas...  ?

Hors ligne

#20 Le 15/12/2006, à 15:44

kerozen54

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

ok, je teste de suite, merci....

Hors ligne

#21 Le 15/12/2006, à 15:46

kerozen54

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

heu...bin...

mutt, commande introuvable....

j'ai pas dû installer les bon paquets alors

Hors ligne

#22 Le 15/12/2006, à 15:48

Uggy

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

kerozen54 a écrit :

heu...bin...

mutt, commande introuvable....

j'ai pas dû installer les bon paquets alors

c'est un truc en +

sudo apt-get install mutt

Hors ligne

#23 Le 15/12/2006, à 15:50

kerozen54

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

bon, mutt installé

je viens de tester et en effet, le mail arrive avec la pièce jointe correctement...

donc si je comprend bien, le script php fonctionne pour sendmail mais pas postfix à cause d'une malformation du code...

faut que je débugge en plus du php....

en tout cas, merci pour ton aide bien précieuse pour trouver l'origine de mon problème.

Hors ligne

#24 Le 15/12/2006, à 15:58

Uggy

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

kerozen54 a écrit :

je viens de tester et en effet, le mail arrive avec la pièce jointe correctement...

donc si je comprend bien, le script php fonctionne pour sendmail mais pas postfix à cause d'une malformation du code...

Bahhh disons que je fais + confiance a un professionnel comme Dr. W.Z. Venema ou au développeur de mutt qu'a ton pote webmestre pour ce qui est du respect des RFCs. wink

Je ne sais pas pourquoi cela fonctionne avec Sendmail. Est ce que avec Sendmail, le source du mail qui arrive a les sauts de lignes dont j'ai parlé + haut ? Est ce que tu confirmes que ton script créé ces sauts de lignes ? En fonction des réponses on découvrira peut etre que Sendmail corrige les messages malformés de ce type... ?


Bref tout ca pour dire que c'est pas la faute a Postfix !!  smile

Hors ligne

#25 Le 15/12/2006, à 16:37

kerozen54

Re : [résolu] serveur postfix - pb de pièces jointes dans l'email-

je commence à comprendre que tu as bien raison sur postfix.

je pense aussi que l'install de base de sendmail doit comprendre une configuration qui limite ce genre de problème.

je viens de regarder un peu le script et je suis assez surpris de voir ce genre de chose:
$msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";

j'ai donc enlevé ce . avant le = sur certaines lignes, et celà semble fonctionner sous postfix...

faudrait que je teste avec sendmail pour voir si un autre problème n'apparaitrait pas alors...

Hors ligne