Recuperar o conteúdo HTML de uma mensagem de e-mail
Na tarefa a seguir, uma exceção pode ser gerada quando você executar o método Transport.more().
- Importe as classes e interfaces necessárias.
import net.rim.blackberry.api.mail.BodyPart;
import net.rim.blackberry.api.mail.MimeBodyPart;
import net.rim.blackberry.api.mail.Transport;
import net.rim.device.api.ui.component.Dialog;
- Crie um método que receba um objeto MimeBodyPart como parâmetro.
void readEmailBody(MimeBodyPart mbp)
{
- Invoque MimeBodyPart.getContent() e MimeBodyPart.getContentType() para recuperar o conteúdo do objeto MimeBodyPart.
Object obj = mbp.getContent();
String mimeType = mbp.getContentType();
- Crie uma variável String para manter a representação String do objeto MimeBodyPart.
String body = null;
- Se o aparelho BlackBerry puder converter o corpo em HTML de uma mensagem em String, o objeto MimeBodyPart será um String. Converta o objeto MimeBodyPart em um String e atribua-o à representação String da parte do corpo da mensagem.
if (obj instanceof String)
{
body = (String)obj;
}
- Se o aparelho BlackBerry não puder converter o corpo em HTML de uma mensagem em String, o objeto MimeBodyPart será uma matriz de bytes. Crie uma nova instância deString usando como parâmetro o objeto MimeBodyPart convertido em uma matriz de bytes. Atribua o String à representação String da parte do corpo da mensagem.
else if (obj instanceof byte[])
{
body = new String((byte[])obj);
}
- Verifique se a representação String do conteúdo do objeto MimeBodyPart contémContentType.TYPE_TEXT_PLAIN_STRING para determinar se o objeto MimeBodyPart é a parte do corpo da mensagem sem formatação.
if (mimeType.indexOf(ContentType.TYPE_TEXT_PLAIN_STRING) != -1)
{
- Invoque MimeBodyPart.hasMore() e MimeBodyPart.moreRequestSent() para determinar se toda a parte do corpo de texto está presente no objeto MimeBodyPart.
if (mbp.hasMore() && !mbp.moreRequestSent())
{
- Se mais dados estiverem disponíveis para o objeto MimeBodyPart, execute Transport.more() para recuperar o resto dos dados do objeto MimeBodyPart.
Transport.more((BodyPart)mbp, true);
- Verifique se a representação String do conteúdo do objeto MimeBodyPart contém ContentType.TYPE_TEXT_HTML_STRING para determinar se o objeto MimeBodyPart é a parte do corpo da mensagem em HTML.
else if (mimeType.indexOf(ContentType.TYPE_TEXT_HTML_STRING) != -1)
{
- Invoque MimeBodyPart.hasMore() e MimeBodyPart.moreRequestSent() para determinar se toda a parte do corpo em HTML está presente no objeto MimeBodyPart.
if (mbp.hasMore() && !mbp.moreRequestSent())
{
- Se mais dados estiverem disponíveis para o objeto MimeBodyPart, execute Transport.more() para recuperar o resto do objeto MimeBodyPart.
Transport.more((BodyPart)mbp, true);
Exemplo de código: Recuperar o conteúdo HTML de uma mensagem de e-mail
private void readEmailBody(MimeBodyPart mbp)
{
//Extract the content of the message.
Object obj = mbp.getContent();
String mimeType = mbp.getContentType();
String body = null;
if (obj instanceof String)
{
body = (String)body;
}
else if (obj instanceof byte[])
{
body = new String((byte[])obj);
}
if (mimeType.indexOf(ContentType.TYPE_TEXT_PLAIN_STRING) != -1)
{
_plainTextMessage = body;
//Determine if all of the text body part is present.
if (mbp.hasMore() && !mbp.moreRequestSent())
{
try
{
Transport.more((BodyPart)mbp, true);
}
catch (Exception ex)
{
Dialog.alert("Exception: " + ex.toString());
}
}
}
else if (mimeType.indexOf(ContentType.TYPE_TEXT_HTML_STRING) != -1)
{
_htmlMessage = body;
//Determine if all of the HTML body part is present.
if (mbp.hasMore() && !mbp.moreRequestSent())
{
try
{
Transport.more((BodyPart)mbp, true);
}
catch (Exception ex)
{
Dialog.alert("Exception: " + ex.toString());
}
}
}
}
Estas informações foram úteis? Gostaríamos de receber seus comentários.