IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

[javamail]format pièce jointe


Sujet :

API standards et tierces Java

  1. #1
    Membre expérimenté
    Inscrit en
    Mai 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2006
    Messages : 200
    Par défaut [javamail]format pièce jointe
    Bonjour à tous,

    j'ai un soucis avec ma pièce jointe envoyé via javamail.

    J'arrive à envoyer un mail, la pièce jointe est bien transmise également mais j'ai un problème de format.

    Je m'explique, j'ai une application qui génère un fichier csv dans un environnement linux. Ce fichier est ensuite envoyé via javamail. J'ai une autre application qui recupère ce même fichier, et qui l'envoi ensuite par mail pour assurer un backup. Cette seconde application est, elle, sous windows.

    Mon problème est que le fichier envoyé via javamail est au format DOS et celui envoyé par la seconde application au format UNIX. La seule diffèrence étant a priori le caractère de fin de ligne. (non non je ne me trompe pas, le fichier envoyé depuis linux est au format dos et celui depuis windows au format UNIX)

    Cette seconde information me fait dire que le fichier est bien généré au format UNIX.

    Avez-vous déjà rencontré ce type de problème? Avez-vous une idée ?

    Merci

  2. #2
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Bizarre ton problème.

    Tu devrais utiliser notepad++ pour vérifier le format de fin de ligne. A mon avis ton fichier généré sur ta plateforme UNIX doit terminer les lignes avec des LF au lieu des CRLF sur windows.

    Tu devrais aussi vérifier le content-type utilisé par Javamail pour transmettre ta pièce jointe. Comme c'est du texte c'est peut être interprété comme du text-plain. L'encodage en B64 des pièces jointes devrait conserver les données intactes.

    Une solution sinon serait de zipper ta pièce jointe au départ de ta plateforme unix et pareil sur ta plateforme windows. Là yaura aucune ambiguité pour Javamail.

  3. #3
    Membre expérimenté
    Inscrit en
    Mai 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2006
    Messages : 200
    Par défaut
    OK merci pour ces infos,


    Tu devrais utiliser notepad++ pour vérifier le format de fin de ligne. A mon avis ton fichier généré sur ta plateforme UNIX doit terminer les lignes avec des LF au lieu des CRLF sur windows.
    C'est exactement ça la différence entre les deux fichiers, pourtant à la base c'est le même fichier. Le transfert du fichier peut provoquer sa modification?

    Je vais voir pour le zipper, ça peut effectivement résoudre le problème.

    Merci.

  4. #4
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    C'est exactement ça la différence entre les deux fichiers, pourtant à la base c'est le même fichier. Le transfert du fichier peut provoquer sa modification?
    Non c'est le système.

    Tu es sur une station UNIX et tu crées un CSV. Donc le système te crée des sauts de lignes composés par LF. C'est normal. Lorsque ton fichier arrive sur Windows, tu dois manuellement faire la conversion.

    Sous notepad++ il te suffit de cliquer sur le menu Format puis "Convertir en format Windows" et tu auras tes CRLF.

  5. #5
    Membre expérimenté
    Inscrit en
    Mai 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2006
    Messages : 200
    Par défaut
    Tu es sur une station UNIX et tu crées un CSV. Donc le système te crée des sauts de lignes composés par LF. C'est normal. Lorsque ton fichier arrive sur Windows, tu dois manuellement faire la conversion.

    C'est bien la le probleme. Mon appli tourne sous linux et génère le fichier csv. Elle envois ensuite le mail via javamail au destinataire et à l'arrivé ce fichier est au format DOS.

    C'est le fichier qui est envoyé via windows qui est lui a l'arrivée au format UNIX. C'est pour ca que je pense que le fichier est bien généré au format UNIX mais qu'il est transformé ensuite...
    C'est quand même fou qu'un fichier généré sous linux, envoyé via une appli sous linux et reçut dans une boite mail sous linux soit au format DOS.

    Le changement de format n'a rien changé...Je vais voir avec le client pour me rabattre sur du zip.

    Merci de porter un intérêt à mon problième.

  6. #6
    Membre expérimenté
    Inscrit en
    Mai 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2006
    Messages : 200
    Par défaut
    Bonjour,

    je viens de changer tout mon code, je passe maintenant par la libraire http://commons.apache.org/email/ qui est une surcouche de javamail.
    L'envoi de mail se fait toujours parfaitement bien, la pièce jointe est jointe mais l'envoi du fichier la modifie semble t-il.

    le fichier generé sur linux au format linux arrive ds la boite de reception au format DOS...

    L'utilisation d'un zip pour contourner le problème n'est pas possible...

    Quelqu'un à une idée?

  7. #7
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Qu'est-ce qui te fait dire qu'il est au format DOS ? Je veux dire, comment détectes-tu l'encodage ?
    N'oublies pas que l'encodage et le ou les caractères de séparation de fin de lignes ne sont pas liés. Je pense que tu mélanges un peu tout. Pourrait-on voir ce fameux fichier texte une fois qu'il est sorti de ton système ( au "format DOS" donc) ?

  8. #8
    Membre expérimenté
    Inscrit en
    Mai 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2006
    Messages : 200
    Par défaut
    Il ya peut etre effectivement une confusion de ma part...

    Qu'est-ce qui te fait dire qu'il est au format DOS ? Je veux dire, comment détectes-tu l'encodage ?
    J'ouvre les deux fichier avec winmerge. Et la un des deux est mis au mis au format dos et l'autre au format UNIX.

    Quand je parle de format c'est effectivement le caractère de fin de ligne dont je parle. Un des deux fichiers a celui du monde UNIX et l'autre celui du monde DOS.

  9. #9
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    On est d'accord que ce tu appelles "format DOS" c'est en fait le format Windows ? C'est à dire les sauts de lignes sont constitués de CR+LF et que le format UNIX (ou Mac) c'est juste le LF.

    On est d'accord aussi que tu as 2 applis développés en Java qui utilisent Javamail, l'une sur une station Unix, l'autre sur une station Windows, la 1ère envoie ton texte avec LF pour séparateur fin de ligne et la 2ème CR+LF.

    On est d'accord sur ça ?

    Si c'est le cas il n'y a aucun problème, tout roule normalement.

  10. #10
    Membre expérimenté
    Inscrit en
    Mai 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2006
    Messages : 200
    Par défaut
    On est d'accord que ce tu appelles "format DOS" c'est en fait le format Windows ? C'est à dire les sauts de lignes sont constitués de CR+LF et que le format UNIX (ou Mac) c'est juste le LF.
    On est d'accord la dessus.

    On est d'accord aussi que tu as 2 applis développés en Java qui utilisent Javamail, l'une sur une station Unix, l'autre sur une station Windows, la 1ère envoie ton texte avec LF pour séparateur fin de ligne et la 2ème CR+LF.
    On est pas d'accord ici ^^

    J'ai un appli java sous linux. Cette appli génère un fichier csv dans ce que j'appelle le format UNIX. Jusque la pas de soucis. Ce fichier, créé au bon format, est présent dans un dossier sur un ftp.
    L'appli qui a généré le fichier est chargé aussi de l'envoyer par mail. J'utilise pour cela javamail.

    Et j'ai une seconde appli, développé en windev cette fois, qui tourne sous windows. Cette seconde appli ne génère pas de fichier, elle ne se charge que de récupérer en ftp le fichier généré par la précédente appli et de l'envoyer la aussi par mail.

    C'est donc le même fichier physique qui est envoyé par les deux application. Pourtant les caractère de fin de lignes diffère.
    Celui envoyé depuis la machine linux est semble-t'il modifié puisqu'il est reçu au format "DOS" alors qu'il est bien généré au format UNIX.

  11. #11
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Aaaaaah mais voilà ! Tu as oublié de préciser le facteur Windev.

    Tout s'explique

    Les fonctions Windev d'envoi de mails doivent surement effectuer une conversion pour être compatible avec le système sur lequel ton appli tourne (Windows donc) lors du parsing du CSV sans rien te dire. Et comme c'est du proprio tu pourras pas savoir

    Sinon si tu as du temps à perdre tu peux toujours appeler le support technique de PCSoft pour poser la question.

  12. #12
    Membre expérimenté
    Inscrit en
    Mai 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2006
    Messages : 200
    Par défaut
    Bonjour,

    non je pense pas que c'est windev qui effectue un traitement. Puisque le fichier qui passe par l'application windev est bien transmis au format UNIX.

    Et quand je récupère le fichier en ftp il est également au format UNIX. A priori le seul changement qu'il y a, à lieu au moment du transfert avec l'appli java(qui se trouve sous linux)...

  13. #13
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Alors je sais pas quoi te dire.

Discussions similaires

  1. [JavaMail] Envoi de pièce jointe
    Par log2n dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 08/11/2013, 09h34
  2. [Javamail] Lecture pièce jointe, content-type: Application/octet-stream
    Par rtsKyo dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 20/06/2013, 17h56
  3. JavaMail + plusieurs pièces jointes
    Par franfr57 dans le forum Général Java
    Réponses: 1
    Dernier message: 16/04/2008, 15h40
  4. [javamail] envoi mail avec message en pièce jointe
    Par k4eve dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 16/11/2007, 11h17
  5. [JavaMail] Pièces Jointes dans Outlook
    Par Bartuk dans le forum API standards et tierces
    Réponses: 21
    Dernier message: 05/04/2006, 18h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo