Entwicklungshandbuch

Local Navigation

Abrufen des HTML-Inhalts einer E-Mail-Nachricht

In der folgenden Aufgabe kann eine Ausnahme ausgegeben werden, wenn Sie die Transport.more()-Methode aufrufen.

  1. Importieren Sie die erforderlichen Klassen und Schnittstellen.
    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. Erstellen Sie eine Methode, die als Parameter ein MimeBodyPart-Objekt verwendet.
    void readEmailBody(MimeBodyPart mbp)
    {
  3. Rufen Sie MimeBodyPart.getContent() und MimeBodyPart.getContentType() auf, um den Inhalt des MimeBodyPart-Objekts abzurufen.
    Object obj = mbp.getContent();
    String mimeType = mbp.getContentType();
  4. Erstellen Sie eine String-Variable, die die String-Darstellung des MimeBodyPart-Objekts enthält.
    String body = null;
  5. Wenn das BlackBerry-Gerät den HTML-Text einer Nachricht in ein String-Objekt konvertieren kann, ist das MimeBodyPart-Objekt ein String-Objekt. Wandeln Sie das MimeBodyPart-Objekt in ein String-Objekt um, und weisen Sie es der String-Darstellung des Nachrichtentextteils der Nachricht zu.
    if (obj instanceof String)
    {
       body = (String)obj;
    }
  6. Wenn das BlackBerry-Gerät den HTML-Text einer Nachricht nicht in ein String-Objekt konvertieren kann, ist das MimeBodyPart-Objekt ein Byte-Array. Erstellen Sie eine neue Instanz des String-Objekts, wobei Sie das MimeBodyPart-Objekt, das in ein Byte-Array umgewandelt wurde, als Parameter verwenden. Weisen Sie das String-Objekt der String-Darstellung des Nachrichtentextteils der Nachricht zu.
    else if (obj instanceof byte[])
    {
       body = new String((byte[])obj);
    }
  7. Überprüfen Sie, ob die String-Darstellung des Inhalts des MimeBodyPart-Objekts ContentType.TYPE_TEXT_PLAIN_STRING enthält, um festzustellen, ob das MimeBodyPart-Objekt der Nur-Text-Nachrichtentextteil der Nachricht ist.
    if (mimeType.indexOf(ContentType.TYPE_TEXT_PLAIN_STRING) != -1)
    {
  8. Rufen Sie MimeBodyPart.hasMore() und MimeBodyPart.moreRequestSent() auf, um festzustellen, ob der gesamte Text-Nachrichtentextteil im MimeBodyPart-Objekt vorhanden ist.
    if (mbp.hasMore() && !mbp.moreRequestSent())
    {
     
  9. Wenn für das MimeBodyPart-Objekt mehr Daten verfügbar sind, rufen Sie Transport.more() auf, um die übrigen Daten für das MimeBodyPart-Objekt abzurufen.
    Transport.more((BodyPart)mbp, true);
    
  10. Überprüfen Sie, ob die String-Darstellung des Inhalts des MimeBodyPart-Objekts ContentType.TYPE_TEXT_HTML_STRING enthält, um festzustellen, ob das MimeBodyPart-Objekt der HTML-Nachrichtentextteil der Nachricht ist.
    else if (mimeType.indexOf(ContentType.TYPE_TEXT_HTML_STRING) != -1)
    {
  11. Rufen Sie MimeBodyPart.hasMore() und MimeBodyPart.moreRequestSent() auf, um festzustellen, ob der gesamte HTML-Nachrichtentextteil im MimeBodyPart-Objekt vorhanden ist.
    if (mbp.hasMore() && !mbp.moreRequestSent())
    {
  12. Wenn für das MimeBodyPart-Objekt mehr Daten verfügbar sind, rufen Sie Transport.more() auf, um die übrigen Teile des MimeBodyPart-Objekts abzurufen.
    Transport.more((BodyPart)mbp, true);
    

Codebeispiel: Abrufen des HTML-Inhalts einer E-Mail-Nachricht

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());
         }
      }
   }
}

Waren diese Informationen hilfreich? Senden Sie uns Ihren Kommentar.