Sendmail encoding piece jointe pdf

Fermé
Lost - 25 juil. 2006 à 11:38
 bibi - 21 oct. 2010 à 18:02
Bonjour,

J'ai un programme C sur une application qui a pour but d'envoyer par mail un fichier pdf en pièce jointe.

Ce prog appelle un script qui construit un fichier qui sera le paramètre d'entrée de la commande sendmail

Le pb est le suivant : Je mets plusieurs expéditeurs et certains reçoivent le fichier correctement mais d'autres le reçoivent corrompu !!!

Voici les infos majeures du fichier :

/usr/bin/echo "From: $ME\r\n\c" > $FICHIER
/usr/bin/echo "To: $adr\r\n\c" >> $FICHIER
/usr/bin/echo "Subject: $SUJET\r\n\c" >> $FICHIER
/usr/bin/echo "Priority: normal\r\n\c" >> $FICHIER
/usr/bin/echo "MIME-Version: 1.0\r\n\c" >> $FICHIER
/usr/bin/echo "Content-type: multipart/mixed; \c" >> $FICHIER
/usr/bin/echo "boundary=\042$BOUNDARY\042\r\n\c" >> $FICHIER
/usr/bin/echo "\r\n\c" >> $FICHIER
/usr/bin/echo "This is a multi-part message in MIME format.\n\c" >> $FICHIER
/usr/bin/echo "\r\n\c" >> $FICHIER
/usr/bin/echo "--$BOUNDARY\r\n\c" >> $FICHIER
/usr/bin/echo "Content-type: text/plain; charset=iso-8859-1\r\n\c" >> $FICHIER
/usr/bin/echo "\r\n\c" >> $FICHIER
/usr/bin/echo "$COMMENT\n\c" >> $FICHIER


Et plus loin pour la pièce jointe :
/usr/bin/echo "Content-type: application/octet-stream; \c" >> $FICHIER.uu
/usr/bin/echo "name=\042$nom\042\r\n\c" >> $FICHIER.uu
/usr/bin/echo "Content-Transfer-Encoding: x-uuencode\r\n\c" >> $FICHIER.uu
/usr/bin/echo "Content-Disposition: inline; \c" >> $FICHIER.uu
/usr/bin/echo "filename=\042$nom\042\r\n\c" >> $FICHIER.uu
/usr/bin/echo "\r\n\c" >> $FICHIER.uu
# Encode le fichier
uuencode $file < $file >> $FICHIER.uu


Et enfin l'envoi : cat $FICHIER.uu | sendmail -f$ME $adr


Pourquoi ça ne marche pas sur certains serveurs en réception ? Que dois-je modifier pour que ce soit plus universel ?


J'ai essayé avec plusieurs variantes dont le charset us-ascii, ainsi que le content-type application/pdf

Pour encoder, j'utilise uuencode, serait-ce possible d'obtenir l'exécutable base64 (version unix) pour faire un test ?

Est-ce que qqn a une idée parce que je sèche !

Merci bcp.

TiTi
A voir également:

2 réponses

Salut,

tu peux en effet essayer base64 :
http://www.fourmilab.ch/webtools/base64/

les clients qui recoivent le fichier corrompu on un client de messagerie particulier aux autres ? (gnere qui n'arriverai pas à décoder la pièce jointe)
0
uuencode n'est pas une version d'encapsulage des mails reconnus partout. Elle ne respacte pas les normes MIMES. J'ai moi même le même problème et je ne sais pas comment encoder autrement.
0