2013-04-13 4 views
0

Je suis en mesure de créer un fichier .eml avec la bibliothèque javax.mail, mais si le corps est plus long que 76 caractères, il est brisé en plusieurs lignes. Le problème est que l'ouverture du fichier .eml avec Windows Live Mail le '=' char apparaît dans le corps de l'e-mail dans la correspondance du caractère 76 et le texte est sur multiligne.MimeMessage corps plus long 76 caractères

Quelqu'un peut-il m'aider s'il vous plaît? Merci

-Antonio

Ceci est le fichier exemple .eml:

X-Unsent: 1 
Message-ID: <[email protected]> 
Subject: Comunicazione Contenzioso Spedizione 8092255513 del 09-04-2013 
MIME-Version: 1.0 
Content-Type: multipart/mixed; 
boundary="----=_Part_4_1091659763.1365866499167" 

------=_Part_4_1091659763.1365866499167 
Content-Type: text/plain; charset=UTF-8 
Content-Transfer-Encoding: quoted-printable 

The Stratford Bust, located on the wall of the chancel of Holy Trinity Chur= 
ch at Stratford-upon-Avon, is the oldest and, along with the Droeshout Port= 
rait, most credible of all the known images of Shakespeare. But there are m= 
any representations of the Bard that have been handed down throughout the c= 
enturies, each with its own fascinating story to tell.. Responsabilit=C3=A0= 
: Generica 


------=_Part_4_1091659763.1365866499167-- 

et voici mon code actuel:

Message message = new MimeMessage(javax.mail.Session.getInstance(System.getProperties())); 
message.setFrom(new InternetAddress(from)); 
message.setRecipients(Message.RecipientType.TO, getAddress(to)); 
message.setSubject(subject); 
Multipart multipart = new MimeMultipart(); 
MimeBodyPart content = new MimeBodyPart(); 
multipart.addBodyPart(content); 
content.setText(body); 
message.setContent(multipart); 
FileOutputStream fos = new FileOutputStream(emlFile); 
message.writeTo(fos); 
fos.close(); 

Quand j'ouvre le fichier EML, le le message est:

Le buste de Stratford, situé sur le mur du chanc L'église de la Sainte-Trinité-Coire à Stratford-upon-Avon est la plus ancienne et, avec le port de Droeshout, la plus crédible de toutes les images connues de Shakespeare. Mais il existe de nombreuses représentations du Barde qui ont été transmises à travers les années, chacune avec sa propre histoire fascinante à raconter. Responsabilità = Generica

Ce que je dois mettre en place pour obtenir le corps exact ? merci

+0

Ce résoudre mon problème: contenu .setHeader ("Content-Transfer-Encoding", "base64"); – user1047400

Répondre

0

Semble que vous n'avez pas fourni les bons en-têtes. Si la partie du corps est dans QP, vous avez besoin d'un en-tête de partie de corps Content-Transfer-Encoding: quoted-printable pour indiquer au client.

Si vous avez besoin de plus d'aide, la source d'un message problématique serait utile pour le diagnostic. Un bon minimum un message multipart ressemble à ceci:

From: [email protected] 
To: [email protected] 
Subject: privet, mir 
Mime-Version: 1.0 
Content-type: multipart/mixed; boundary=foo 

--foo 
Content-type: text/plain; charset=utf-8 
Content-Transfer-Encoding: quoted-printable 

Hello w= 
orld. 

--foo-- 

(à proprement parler Date: et Message-Id: sont obligatoires, aussi, mais le MTA habituellement les ajouter si elles manquent.)

+0

Merci pour votre réponse, mais je n'ai pas compris comment régler correctement le message MIME. J'ai édité ma question précédente présentant mon code actuel et le contenu du fichier eml .... J'espère qu'il efface ma situation ... – user1047400

+0

Il semble que j'ai correctement mis en place le QP pour la partie du corps .. mais quand j'ouvre le fichier eml avec Windows Live Mail, le corps inclut des caractères "=" .... – user1047400

Questions connexes