JavaxMail — сообщение получает только почту от getFrom ()

#java #jakarta-mail

#java #джакарта-почта

Вопрос:

У меня есть этот код

 Address[] from = message.getFrom();
System.out.println(from[0]);
  

Что печатает: AuthorName <name@domain> или name@domain — зависит от почты.

Как я могу получать только name@domain все время, без AuthorName ?

Комментарии:

1. Вы могли бы попробовать использовать не an Address , а один из его подклассов, an InternetAddress , который различает личное имя и фактический адрес электронной почты.

Ответ №1:

Адрес является абстрактным, и Javadoc указывает на два производных класса, один для новостей, а другой с не слишком полезным именем InternetAddress (думаю, новостей тогда не было в Интернете).

В этом случае вы, вероятно, получите InternetAddress , у которого есть метод getAddress, который, похоже, делает то, что вы хотите. Итак, приведите возвращаемый адрес к InternetAddress и получите адрес электронной почты:

 Address[] from = message.getFrom();
InternetAddress ia = (InternetAddress) from[0];
System.out.println(ia.getAddress());