2011-01-19 2 views
2

reply 메소드가 수신자를 채우지 않는 이유가 무엇이든간에 결정한 발신 주소 및 제목을 사용하여 이메일에 회신하는 간단한 루틴을 작성하려고합니다.JavaMail Message.reply (부울)가 수신자를 채우지 않음

다음 예제에서 rep은 항상 null이고, 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에 보여 모든 다양한 맛의 여기 저기 복사 된 패턴을 적용하고있다. reply의 문서에서

답변

2

는 : replyToAll가 설정되어있는 경우

, 새로운 메시지는이 메시지의 모든받는 사람에게 해결 될 것입니다. 그렇지 않은 경우, 응답은이 메시지의 송신자에게만 보내집니다 (getReplyTo 메소드의 값 사용).

그럼 논리적 인 다음 단계는 message.getReplyTo()이 반환하는 것을 확인하는 것입니다. null을 반환하면 문제를 설명합니다 ...

+0

감사합니다. Jon, 사과해야합니다. 나는 실제로이 동작에 대한 테스트를 추가했는데, 실제로 처음 읽었을 때 JavaDoc을 잘못 해석했지만, "getReplyTo"가 null이고 "replyToAll"이 true 인 경우 여전히 "getFrom()"받는 사람에게 응답 할 것이라고 생각했습니다. Bcc 및 Cc 주소와 관련된 인수는 수신자로 추가됩니다 (대부분의 전자 메일 클라이언트에서 reply-to-all 기능과 비슷합니다). –

관련 문제