如何使用Javax.mail.Transport注册Trasport Listener,以侦听来自电子邮件服务器的电子邮件发送状态

问题描述 投票:0回答:1

我正在尝试从电子邮件服务器捕获电子邮件状态,为此,我已经配置了TransportListener。但是,使用Transport.send()发送电子邮件后,不会触发TransportListener事件。我知道Transport.send()将创建新实例,但是我们需要在T​​ransportListener中注册Transport实例。我没有找到如何在TransportListener中注册Transport实例来触发TransportListener的方法messageDelivered()和messageNotDelivered()的方法。

[任何人都可以建议我如何在TransportListener中注册我的传输,以了解来自电子邮件服务器的电子邮件状态。

==下面的代码段可捕获来自邮件服务器的传递状态代码====

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





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

        transport.send(message);
        //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();
java javamail
1个回答
1
投票

[请注意,TransportListener仅会告诉您邮件服务器是否拒绝您的消息,即您从Transport.send处获得的信息相同。如果您想知道消息是否最终传递给了收件人,则需要了解传递状态通知,但请参阅this JavaMail FAQ entry

© www.soinside.com 2019 - 2024. All rights reserved.