java - Java 邮件中的 TransportEvent 何时被触发?

标签 java email jakarta-mail

我正在尝试使用监听器获取已发送消息的 Message-Id。 我正在实现
javax.mail.event.TransportListener 以及代码示例中给出的具体方法。

它监听 javax.mail.event.TransportEvent,该事件在调用 void javax.mail.Transport.sendMessage(.....) 时生成。

令我惊讶的是,当我实际发送邮件时,没有任何方法被调用..???它什么时候真正被调用?调用 sendMessage(..) 后是否需要添加任何等待时间??

这不是实时发生的吗?

@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();
    }       
}

最佳答案

您是否向用于发送消息的 Transport 实例注册了监听器?请记住,静态 Transport.send() 方法会创建您从未见过的自己的 Transport 实例。

关于java - Java 邮件中的 TransportEvent 何时被触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11505158/

相关文章:

java - 通过线程中的套接字进行对象输入/输出

Java 绘画图标不适用于背景图像

php - 在 Codeigniter 中无法发送电子邮件 - fsockopen() : unable to connect to ssl://smtp. gmail.com:465(连接被拒绝)

java - WebDriver 自动化验证电子邮件

java - Amazon SNS 推送 - 如何定义推送通知图标

java - java中线程的等待和通知顺序

javascript - Thunderbird 插件 - 按发件人过滤

linux - 根据用户输入的文件映射

java - 读取带有换行符的电子邮件内容

java - 使用本地主机而不是 gmail 发送邮件