Guia do desenvolvedor

Local Navigation

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().

  1. 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;
    
  2. Crie um método que receba um objeto MimeBodyPart como parâmetro.
    void readEmailBody(MimeBodyPart mbp)
    {
  3. Invoque MimeBodyPart.getContent() e MimeBodyPart.getContentType() para recuperar o conteúdo do objeto MimeBodyPart.
    Object obj = mbp.getContent();
    String mimeType = mbp.getContentType();
  4. Crie uma variável String para manter a representação String do objeto MimeBodyPart.
    String body = null;
  5. 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;
    }
  6. 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);
    }
  7. 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)
    {
  8. 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())
    {
     
  9. 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);
    
  10. 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)
    {
  11. 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())
    {
  12. 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.