¿Convertir correo electrónico con formato (HTML) a texto sin formato?

Tengo este código que implementa ParserCallback y convierte los correos electrónicos HTML a texto sin formato. Este código funciona bien cuando analizo el cuerpo del correo electrónico como este =

  "DO NOT REPLY TO THIS EMAIL MESSAGE. 
---------------------------------------
\n" + "nix
---------------------------------------
Esfghjdfkj\n" + "



--
Regards
Nisj
Software Engineer
Bingo
\n" + "
"

pero cuando analizo este tipo de cuerpo de correo electrónico, devuelve nulo,

  email = "Got it...so pls send to customer now.

On Nov 8, 2013, at 12:31 PM, xxxxxxx.com wrote:

Forwarding test.
---------------------------------------
ABCD.

";

Código:

 import java.io.IOException; import java.io.StringReader; import javax.swing.text.MutableAttributeSet; import javax.swing.text.html.HTML.Attribute; import javax.swing.text.html.HTML.Tag; import javax.swing.text.html.HTMLEditorKit.Parser; import javax.swing.text.html.HTMLEditorKit.ParserCallback; import javax.swing.text.html.parser.ParserDelegator; public class EmailBody { public static void main(String[] args) throws IOException { String email = ""; class EmailCallback extends ParserCallback { private String body_; private boolean divStarted_; public String getBody() { return body_; } @Override public void handleStartTag(Tag t, MutableAttributeSet a, int pos) { if (t.equals(Tag.DIV) && "ltr".equals(a.getAttribute(Attribute.DIR))) { divStarted_ = true; } } @Override public void handleEndTag(Tag t, int pos) { if (t.equals(Tag.DIV)) { divStarted_ = false; } } @Override public void handleText(char[] data, int pos) { if (divStarted_) { body_ = new String(data); } } } EmailCallback callback = new EmailCallback(); Parser parser = new ParserDelegator(); StringReader reader = new StringReader(email); parser.parse(reader, callback, true); reader.close(); System.out.println(callback.getBody()); } } 

¿Puedes decir la razón, por qué esto está sucediendo?

El código solo tomará el texto del elemento de los elementos DIV que tienen un atributo dir con un valor ltr . El método handleText solo manejará el texto del elemento si el indicador divStarted_ es verdadero, lo que sucede solo si el handleStartTag establece este indicador en verdadero.
En el primer ejemplo de correo electrónico tiene tales elementos, en el segundo no los tiene.