2011-01-19 38 views
2

我試圖寫一個簡單的程序與確定的地址和主題然而,回覆電子郵件,無論什麼原因,reply方法不填充收件人。的JavaMail Message.reply(布爾)不填充收件人

在以下示例中,rep始終爲空,任何嘗試調用Transport.send都會導致發生異常,表明沒有收件人。

MimeMessage reply = (MimeMessage) message.reply(false); 
Address[] rep = reply.getRecipients(Message.RecipientType.TO); 
if (rep == null || rep.length == 0) { 
    System.out.println("Reply aborted due to no recipient."); 
} else { 
    reply.setFrom(from); 
    reply.setText(body); 
    Transport.send(reply); 
} 

我申請的是所表現出的對Oracle jGuru pages和複製遍佈各種風味的地方模式。

回答

2

reply文檔:

如果replyToAll設置,新的信息將發往此郵件的所有收件人。否則,回覆將僅發送給此消息的發件人(使用getReplyTo方法的值)。

所以邏輯的下一步將是檢查什麼message.getReplyTo()返回。如果返回null,它解釋了這個問題...

+0

感謝喬恩,我必須道歉。我現在已經增加了對這種行爲的測試,雖然我實際上是曲解的JavaDoc當我第一次讀它,我想,它仍然會回覆「GETFROM()」收件人如果「getReplyTo」爲空並且假設「replyToAll」不僅關係到密件抄送地址參數被添加收件人(非常類似於一個回覆到所有的功能在大多數郵件客戶端)。 – 2011-01-19 11:56:35