Как зарегистрировать Trasport Listener с помощью Javax.mail.Transport, чтобы прослушивать сообщения о состоянии отправленных писем с почтового сервера - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь получить статус электронной почты с почтового сервера, для этого я настроил TransportListener. Но событие TransportListener не сработало после отправки электронной почты с помощью Transport.send (). Я узнал, что Transport.send () создаст новый экземпляр, но нам нужно зарегистрировать экземпляр Transport в TransportListener. Я не нашел способ, как зарегистрировать экземпляр Transport с TransportListener, чтобы вызвать методы messageDelivered (), messageNotDelivered () из TransportListener.

Может ли кто-нибудь подсказать, как я могу зарегистрировать свой Transport с TransportListener, чтобы узнать статус моих писем с почтового сервера.

== Ниже фрагмент кода для захвата кода состояния доставки с почтового сервера ====

SMTPTransport transport = (SMTPTransport)session.getTransport("smtp");





        transport.connect("host","Port","Username","password");

        transport.sendMessage(message, message.getAllRecipients());
        //transport.simpleCommand(cmd);
        String response = transport.getLastServerResponse();
        boolean s = transport.getReportSuccess();
        int code = transport.getLastReturnCode();
        System.out.println("response is:" + response);
        System.out.println("report is:" + s);
        System.out.println("Code is:" + code);
        transport.close();

1 Ответ

1 голос
/ 17 апреля 2020

Обратите внимание, что TransportListener сообщит вам только, если ваш почтовый сервер отклонит ваше сообщение, что является той же информацией, которую вы получаете от кроме Transport.send. Если вы хотите узнать, было ли сообщение в конечном итоге доставлено получателю, вам нужно узнать об уведомлениях о состоянии доставки, но см. эту запись FAQ по JavaMail .

...