0

リスナーを使用して、送信されたメッセージの Message-Id を取得しようとしています。
コードサンプルで指定された具体的なメソッドで javax.mail.event.TransportListener を実装しています。

void javax.mail.Transport.sendMessage(.....) が呼び出されたときに生成される javax.mail.event.TransportEvent をリッスンします。

驚いたことに、実際にメールを送信したときにメソッドが呼び出されません..??? 実際に呼び出されるのはいつですか?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();
    }       
}
4

1 に答える 1

3

メッセージの送信に使用されている Transport インスタンスにリスナーを登録しましたか? 静的な Transport.send() メソッドは、目にすることのない独自の Transport インスタンスを作成することに注意してください。

于 2012-07-16T20:33:53.607 に答える