2014-10-09 2 views

답변

1

에 따르면 http://www.oracle.com/technetwork/java/javase/7u55-relnotes-2177812.html#knownissues-7u55 SAAJ 구성 요소를 초기화 한 후 특정 상황에서 javax.mail 라이브러리가 작동하지 않을 수 있으며 이로 인해 javax.mail의 JAF 설정이 손상 될 수 있습니다. 가능한 해결 방법은 javax.mail API 사용하기 전에 javax.mail 핸들러를 다시 추가하는 것입니다 : 새로운 AttachmentPartImpl를 호출

MailcapCommandMap mailMap = (MailcapCommandMap) CommandMap.getDefaultCommandMap(); 
mailMap. 
    addMailcap("multipart/mixed;;x-java-content-handler=com.sun.mail.handlers.multipart_mixed");" 

를(); 특정 상황 중 하나입니다. 응용 프로그램

com.sun.xml.internal.messaging.saaj.soap.MessageImpl.createAttachmentPart() 

에서

은 이메일을 보내기 전에 호출된다. 아무것도하지 않고 새로운 AttachmentPartImpl()을 반환합니다. 헤더를 포함하는 = 새로운 MimeHeaders(); 새로운 MimeHeaders()를 호출하면 빈 몸체가 발생하기에 충분하지 않았습니다. 새로운 AttachmentPartImpl() 호출; 메일을 보내기 전에 빈 몸체가 생겼습니다. javax.mail API를 사용하기 전에 javax.mail 핸들러를 다시 추가하면 문제가 해결됩니다.

MultiPartEmail email = new MultiPartEmail(); 
email.setHostName(smtpServer); 
email.addTo(to); 
email.setFrom(from); 
email.setSubject(subject); 
email.setMsg(msg); 
email.setSocketTimeout(20000); 
email.setSocketConnectionTimeout(20000); 
// SOAPMessage soapMessage = MessageFactory.newInstance().createMessage(); 
// soapMessage.createAttachmentPart(); // enough for empty body 
new AttachmentPartImpl(); // enough for empty body 
// new MimeHeaders(); not enough for empty body 
email.send();