Guide de développement

Local Navigation

Récupérer le contenu HTML d'un e-mail

Dans la tâche suivante, une exception risque d'apparaître lorsque vous appelez la méthode Transport.more().

  1. Importez les classes et les interfaces requises.
    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. Créez une méthode utilisant un objet MimeBodyPart comme paramètre.
    void readEmailBody(MimeBodyPart mbp)
    {
  3. Appelez MimeBodyPart.getContent() et MimeBodyPart.getContentType() pour récupérer le contenu de l'objet MimeBodyPart.
    Object obj = mbp.getContent();
    String mimeType = mbp.getContentType();
  4. Créez une variable String pour conserver la représentation String de l'objet MimeBodyPart.
    String body = null;
  5. Si le terminal BlackBerry peut convertir le corps HTML d'un message en objet String, l'objet MimeBodyPart sera un objet String. Convertissez l'objet MimeBodyPart en String et attribuez-le à la représentation String du corps du message.
    if (obj instanceof String)
    {
       body = (String)obj;
    }
  6. Si le terminal BlackBerry ne peut pas convertir le corps HTML d'un message en objet String, l'objet MimeBodyPart sera un tableau d'octets. La création d'une instance de String en utilisant comme paramètre l'objet MimeBodyPart renvoie un tableau d'octets. Attribuez l'objet String à la représentation String du corps du message.
    else if (obj instanceof byte[])
    {
       body = new String((byte[])obj);
    }
  7. Vérifiez si la représentation String du contenu de l'objet MimeBodyPart contient ContentType.TYPE_TEXT_PLAIN_STRING pour déterminer si l'objet MimeBodyPart est le corps de texte brut du message.
    if (mimeType.indexOf(ContentType.TYPE_TEXT_PLAIN_STRING) != -1)
    {
  8. Appelez MimeBodyPart.hasMore() et MimeBodyPart.moreRequestSent() pour déterminer si le corps de texte est présent dans l'objet MimeBodyPart.
    if (mbp.hasMore() && !mbp.moreRequestSent())
    {
     
  9. Si d'autres données sont disponibles dans l'objet MimeBodyPart, appelez Transport.more() pour récupérer le reste des données de l'objet MimeBodyPart.
    Transport.more((BodyPart)mbp, true);
    
  10. Vérifiez si la représentation String du contenu de l'objet MimeBodyPart contient ContentType.TYPE_TEXT_HTML_STRING pour déterminer si l'objet MimeBodyPart est le corps HTML du message.
    else if (mimeType.indexOf(ContentType.TYPE_TEXT_HTML_STRING) != -1)
    {
  11. Appelez MimeBodyPart.hasMore() et MimeBodyPart.moreRequestSent() pour déterminer si le corps de texte est présent dans l'objet MimeBodyPart.
    if (mbp.hasMore() && !mbp.moreRequestSent())
    {
  12. Si d'autres données sont disponibles dans l'objet MimeBodyPart, appelez Transport.more() pour récupérer le reste de l'objet MimeBodyPart.
    Transport.more((BodyPart)mbp, true);
    

Échantillon de code : récupération du contenu HTML d'un 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());
         }
      }
   }
}

Ces informations vous ont-elles été utiles ? Envoyez-nous vos commentaires.