В настоящее время при использовании JavaMail, если я использую getFrom()
для разложения сообщения в его отдельные части, getFrom()
также отобразит имя отправителя. Это может быть простой вопрос, но как вы это делаете, так возвращается только адрес электронной почты. Извините, если это простой вопрос, но я не могу найти ответ.
Получение только адреса электронной почты для отображения при использовании message.getFrom() в JavaMail
Ответ 1
Как выясняется, адрес уже проанализирован для вас. Из-за того, что JavaMail глупый дополнительный слой абстракции, он возвращает InternetAddress
объекты в качестве своего суперкласса Address
. Объекты Address
практически бесполезны. Вам нужно отбросить их обратно до InternetAddress
, а затем просто получить электронную почту:
Address[] froms = message.getFrom();
String email = froms == null ? null : ((InternetAddress) froms[0]).getAddress();