2012-07-16 36 views
0

我想通過使用偵聽器來獲取發送的消息的消息ID。 我實現
javax.mail.event.TransportListener與代碼樣本中給出的具體方法。TransportEvent何時在Java郵件中被觸發?

它偵聽到javax.mail.event.TransportEvent它獲取當空隙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(); 
    }  
} 

回答

2

您是否使用正用於發送消息的Transport實例註冊偵聽器?請記住靜態的Transport.send()方法創建您自己看不到的傳輸實例。

+0

完成!使用新的傳輸實例和偵聽器註冊。 – 2012-07-17 11:56:26

+0

嗨Rakesh,你能指定你如何設法通過提供示例代碼來註冊TransportListener? – balteo 2013-02-10 17:46:37

+0

嗨Rakesh,你可以在這裏發佈你的代碼嗎?引起我需要知道如何捕捉那些事件太...感謝先進的:) – 2013-08-11 01:08:40

相關問題