이메일 메시지의 HTML 콘텐츠 가져오기
다음 작업에서는 Transport.more() 메소드를 호출할 때 예외가 throw될 수 있습니다.
- 필요한 클래스와 인터페이스를 가져옵니다.
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;
- 매개 변수로 MimeBodyPart 객체를 받아들이는 메소드를 만듭니다.
void readEmailBody(MimeBodyPart mbp)
{
- MimeBodyPart.getContent() 및 MimeBodyPart.getContentType()을 호출하여 MimeBodyPart 객체의 콘텐츠를 가져옵니다.
Object obj = mbp.getContent();
String mimeType = mbp.getContentType();
- MimeBodyPart 객체의 String 표현을 저장할 String 변수를 만듭니다.
String body = null;
- BlackBerry 단말기가 메시지의 HTML 본문을 String으로 변환할 수 있는 경우 MimeBodyPart 객체는 String이 됩니다. MimeBodyPart 객체를 String으로 캐스팅하여 메시지 본문 부분의 String 표현에 할당합니다.
if (obj instanceof String)
{
body = (String)obj;
}
- BlackBerry 단말기가 메시지의 HTML 본문을 String으로 변환할 수 없는 경우 MimeBodyPart 객체는 바이트 배열이 됩니다. 바이트 배열로 캐스팅된 MimeBodyPart 객체를 매개 변수로 사용하여 StringString의 인스턴스를 새로 만듭니다. String을 메시지 본문 부분의 String 표현에 할당합니다.
else if (obj instanceof byte[])
{
body = new String((byte[])obj);
}
- MimeBodyPart 객체의 콘텐츠에 대한 String 표현이 ContentType.TYPE_TEXT_PLAIN_STRING을 포함하는지 점검하여 MimeBodyPart 객체가 메시지의 일반 텍스트의 본문 부분인지 여부를 확인합니다.
if (mimeType.indexOf(ContentType.TYPE_TEXT_PLAIN_STRING) != -1)
{
- MimeBodyPart.hasMore() 및 MimeBodyPart.moreRequestSent()를 호출하여 텍스트의 본문 부분이 모두 MimeBodyPart 객체에 있는지 확인합니다.
if (mbp.hasMore() && !mbp.moreRequestSent())
{
- 사용 가능한 MimeBodyPart 객체의 데이터가 더 있으면 Transport.more()를 호출하여 MimeBodyPart 객체의 나머지 데이터를 가져옵니다.
Transport.more((BodyPart)mbp, true);
- MimeBodyPart 객체의 콘텐츠에 대한 String 표현이 ContentType.TYPE_TEXT_HTML_STRING을 포함하는지 점검하여 MimeBodyPart 객체가 메시지의 HTML 본문 부분인지 여부를 확인합니다.
else if (mimeType.indexOf(ContentType.TYPE_TEXT_HTML_STRING) != -1)
{
- MimeBodyPart.hasMore() 및 MimeBodyPart.moreRequestSent()를 호출하여 HTML 본문 부분이 모두 MimeBodyPart 객체에 있는지 확인합니다.
if (mbp.hasMore() && !mbp.moreRequestSent())
{
- 사용 가능한 MimeBodyPart 객체의 데이터가 더 있으면 Transport.more()를 호출하여 나머지 MimeBodyPart 객체를 가져옵니다.
Transport.more((BodyPart)mbp, true);
코드 샘플: 이메일 메시지의 HTML 콘텐츠 가져오기
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());
}
}
}
}
이 정보가 도움이 되었습니까? 의견을 보내 주십시오.