Jochen Arndt
Хотя тема не является обязательным полем заголовка, почти все письма будут иметь его. Если вам нужно письмо без заголовка темы, просто создайте его (например, отправив на адрес, который используется в качестве входных данных для вашего приложения). Но может возникнуть необходимость создавать/отправлять почту программно, а не с помощью клиентского приложения электронной почты, поскольку они имеют поле ввода для темы и поэтому всегда могут включать заголовок даже с пустым содержимым.
Как обнаружить почту без темы зависит от реализации Message.getSubject()
функция. Он может возвращать пустую строку, a null
указатель, или бросок MessagingException
(Я не нашел четкого утверждения в документации, но вы должны быть в состоянии узнать это при обработке письма без заголовка темы).
В первом случае вы не можете обнаружить письма без темы (вы можете обнаружить только пустые поля темы). В третьем случае вы должны поймать исключение.
Фрагмент кода, обрабатывающий все случаи:
try {
String subject=message.getSubject();
if (subject == null)
{
// no subject (if null is returned for this case)
}
else if (subject.isEmpty())
{
// empty subject
}
} catch (MessagingException me) {
// Handle exception here
// Invalid message or - if it applies - subject not present
}
Наконец то нет необходимости звонить
toString()
потому что
Message.getSubject()
возвращать строки.