2017-06-05 4 views
0

J'utilise le code Java pour composer et envoyer des messages électroniques aux comptes MS Outlook 365. Le message est composé comme suit:Comment composer un message mixte MIME multipart pour l'afficher correctement dans Outlook

  1. partie de texte en clair;
  2. partie html contenant uniquement une table;
  3. partie de texte en clair;
  4. Fichier joint.

Je prévois que les perspectives affichent les parties 1-3 comme corps de message et la dernière partie comme pièce jointe. Au lieu de cela, il n'affiche que la première partie en tant que message lui-même et place les parties restantes en tant que pièces jointes distinctes. J'ai joué avec différents en-têtes, mais le résultat est le même. Est-ce une caractéristique de la pile MS (échange, outlook, etc.) ou j'ai fait quelque chose de mal?

Le message brut est ici

Date: Mon, 5 Jun 2017 12:01:47 -0700 (PDT) 
From: [email protected] 
To: [email protected] 
Message-ID: <some id> 
Subject: Test email 
MIME-Version: 1.0 
Content-Type: multipart/mixed; boundary="----=_Part_0_2350964.1496689307498" 

------=_Part_0_2350964.1496689307498 
Content-Type: text/plain; charset=us-ascii 
Content-Transfer-Encoding: 7bit 
Content-Disposition: inline 

Content before table 

------=_Part_0_2350964.1496689307498 
Content-Type: text/html; charset=us-ascii 
Content-Transfer-Encoding: 7bit 
Content-Disposition: inline 

<html><body><table><tr><td>First parameter</td><td>value</td></tr><tr><td>Second row</td><td>42</td></tr></table></body></html> 
------=_Part_0_2350964.1496689307498 
Content-Type: text/plain; charset=us-ascii 
Content-Transfer-Encoding: 7bit 
Content-Disposition: inline 

This content should be placed after table 

------=_Part_0_2350964.1496689307498 
Content-Type: application/octet-stream; 
    name="report.xls" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename="report.xls" 

0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAOwADAP7/CQAGAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA 
<skipped> 
------=_Part_0_2350964.1496689307498-- 

En conséquence, je ne vois que la ligne « contenu avant de table », deux pièces jointes comme rapport « ATT01.html » et « ATT02.txt » et mon attachement original ». xls ".

J'ai trouvé un sujet lié à un forum en disant que ce problème ne devrait pas apparaître depuis Outlook 2010 ou, mais je peux le voir dans la dernière version à la fois dans l'application de bureau et l'application Web. La solution de contournement pour tout mettre en partie HTML nécessite plus de travail, car les parties de texte sont générées par d'autres composants.

Répondre

0

Vous ne regroupez pas correctement les pièces. Il doit être

1. Outer message, multipart/mixed 
    2. multipart/related 
    2.a text/plain 
    2.b text/html 
    3. attachment.