2011-05-06 4 views
0

En espérant que quelqu'un puisse trouver quelque chose qui me manque. J'essaye d'envoyer un email HTML simple dans une application de Java. J'utilise commons-mail 1.1 (via maven) comme mon mail lib.HtmlEmail ne rend pas le HTML correctement (apache commons)

Le code J'utilise est:

HtmlEmail email = new HtmlEmail(); 
email.setDebug(true); 
email.setHostName("my.emailhost.com"); 
email.addTo("[email protected]"); 
email.setFrom("[email protected]"); 
email.setSubject("Test Subject"); 
email.setHtmlMsg("<b>This is a bolded message</b>"); 
email.setTextMsg("This is a text message"); 
email.send(); 

Je reçois l'e-mail, mais il est formaté thusly. Il faut aussi noter qu'il n'y a pas de sujet, mais j'en ai évidemment spécifié un dans mon code.

------=_Part_0_122395252.1304699110505 
Content-Type: text/plain; charset=us-ascii 
Content-Transfer-Encoding: 7bit 

This is a text message 
------=_Part_0_122395252.1304699110505 
Content-Type: text/html; charset=us-ascii 
Content-Transfer-Encoding: 7bit 

<b>This is a bolded message</b> 
------=_Part_0_122395252.1304699110505-- 

Je ne suis pas sûr de ce que je fais mal ici. Je suis passé à l'envoi via Gmail - et il a envoyé, il a juste formaté exactement la même chose. Quand je vois le message cru je vois

Delivered-To: [email protected] 
Received: by 10.90.73.11 with SMTP id v11cs143993aga; 
     Fri, 6 May 2011 09:25:11 -0700 (PDT) 
Received: by 10.236.187.97 with SMTP id x61mr4380232yhm.476.1304699111088; 
     Fri, 06 May 2011 09:25:11 -0700 (PDT) 
Return-Path: <[email protected]> 
Received: from xxxxxxx.xxxxxxx.com (xxxxxxx.xxxxxxx.com [x.x.x.x]) 
     by mx.google.com with ESMTP id 68si9400486yhl.82.2011.05.06.09.25.10; 
     Fri, 06 May 2011 09:25:10 -0700 (PDT) 
Received-SPF: pass (google.com: domain of [email protected] designates x.x.x.x as permitted sender) client-ip=x.x.x.x; 
Authentication-Results: mx.google.com; spf=pass (google.com: domain of [email protected] designates x.x.x.x as permitted sender) smtp.[email protected] 
Received: from xxxxxxx-mac-pro.local ([x.x.x.x]) 
      by xxxxxxx.xxxxxxx.com (Lotus Domino Release 8.5.1FP3) 
      with ESMTP id 2011050612251028-17357 ; 
      Fri, 6 May 2011 12:25:10 -0400 
From: [email protected] 
Date: Fri, 6 May 2011 12:25:10 -0400 
Message-ID: <[email protected]> 

Toutes les pensées seraient grandement appréciées.

Vive

Répondre

0

Je ne suis pas sûr, et ai pas moyen facile de tester moi-même.

Tous les exemples que j'ai vu des communes de messagerie ont le msg formaté en HTML - le site (<html><body><p>Some text for testing</p></body></html>)

De plus, je remarqué ceci:

email.setHtmlMsg("<b>This is a bolded message</b>"); // HTML TEXT 
email.setTextMsg("This is a text message"); // NORMAL Text, with no HTML styles 

peut-être cela est un problème.

Avez-vous testé la façon dont il est écrit dans le API ? Ils utilisent un StringBuffer:

StringBuffer msg = new StringBuffer(); 
msg.append("<html><body>"); 
msg.append("<img src=cid:").append(he.embed(img)).append(">"); 
msg.append("<img src=cid:").append(he.embed(png)).append(">"); 
msg.append("</body></html>"); 
HtmlEmail he = new HtmlEmail(); 
he.setHtmlMsg(msg.toString()); 

Juste quelques pensées, jamais travaillé avec commons-mail à ce jour ...

Hope this aide ! Cordialement,