Api почты javax: получение message.getdescription () = null

Я читал письма через imap и мог получать сообщения, их тему, дату отправки и адрес. Но описание сообщения - null. Я использовал Javax mail api 1.4.

Добро пожаловать в Stack Overflow! Пришло время прочитать страницы помощи, особенно разделы с именами "Какие темы я могу спросить здесь?" и «Какие типы вопросов мне следует избегать?». Также пожалуйста взять тур и читай о том, как задавать хорошие вопросы. Наконец, узнайте, как создать Минимальный, полный и проверяемый пример.

Aniket Sahrawat 11.04.2018 12:01

В двух словах: Какой у Вас вопрос? Должно ли описание быть не нулевым? Что это должно быть?

Malte Hartwig 11.04.2018 12:07

message.getDescription () должен был передать мне тело письма. который я получаю null.

reshma begum 11.04.2018 16:23
2
3
260
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Из MimeMesage документация метод getDescription () используется для получения поля заголовка «Content-Description» сообщения.

Если вы хотите извлечь тело, вы можете использовать MimeMessageParser в объекте сообщения.

final MimeMessageParser parser = new MimeMessageParser(message);
String body = null;
try {
    parser.parse();
} catch (Exception e) {
    LOG.error("Exception during parsing the message body: {}", e);
}
if (parser.hasPlainContent()) {
    body = parser.getPlainContent();
} else if (parser.hasHtmlContent()) {
    body = parser.getHtmlContent();
}

javadoc для MimeMessage::getDescription() говорит:

Returns the "Content-Description" header field of this Message. This typically associates some descriptive information with this part. Returns null if this field is unavailable or its value is absent.

Итак, если getDescription() возвращает null, это означает, что сообщение MIME, которое вы пытаетесь прочитать, не имеет этого поля или поле пусто.

Отсутствие "Content-Description" является законным, поскольку RFC 2045 утверждает:

This header field is always optional.


Короче говоря, ваше приложение должно быть спроектировано так, чтобы работать с getDescription(), возвращающим null.


Вы прокомментировали:

message.getDescription() was supposed to give me body of the mail. which im getting null.

Это не то, что делает getDescription(). Если вам нужен тело почты, используйте getContent() или getContentAsStream()

Другие вопросы по теме