リスナーを使用して、送信されたメッセージの 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();
}
}