简体   繁体   English

什么时候在Java邮件中触发TransportEvent?

[英]When does the TransportEvent get fired in Java mail?

I am trying to get the Message-Id of the sent message by using listeners. 我正在尝试通过使用侦听器获取已发送消息的Message-Id。 I am implementing 我正在实施
javax.mail.event.TransportListener with concrete methods given in code sample. javax.mail.event.TransportListener及其代码示例中提供的具体方法。

It listens to javax.mail.event.TransportEvent which gets generated when void javax.mail.Transport.sendMessage(.....) is called. 它侦听javax.mail.event.TransportEvent,该事件在调用void javax.mail.Transport.sendMessage(.....)时生成。

To my surprise I get none of the method gets called when I actually send the mail..??? 令我惊讶的是,当我实际发送邮件时,没有任何方法被调用。 When does it actually get called ? 它什么时候真正被调用? Do I need to add any wait time after calling sendMessage(..)?? 调用sendMessage(..)之后是否需要添加任何等待时间?

Doesn't it happen in real time ? 这不是实时发生的吗?

@Override
public void messageDelivered(TransportEvent e)
{
    try {
        System.out.println(e.getMessage().getHeader("Message-Id")[0]);
    } catch (MessagingException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
}

@Override
public void messageNotDelivered(TransportEvent e) 
{
    try {
        System.out.println(e.getMessage().getHeader("Message-Id")[0]);
    } catch (MessagingException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }       
}

@Override
public void messagePartiallyDelivered(TransportEvent e) 
{
    try {
        System.out.println(e.getMessage().getHeader("Message-Id")[0]);
    } catch (MessagingException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }       
}

Did you register your listener with the Transport instance that's being used to send the message? 您是否在用于发送邮件的Transport实例中注册了侦听器? Remember that the static Transport.send() method creates its own Transport instance that you never see. 请记住,静态Transport.send()方法创建了自己的Transport实例,您从未见过。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM