이메일 보내기 org.apache.commons.mail.MultiPartEmail.send()는 빈 본문이있는 이메일을 보냅니다. 필자는 commons-email 1.2, 1.3.1, 1.3.3을 시도했다. Java 1.7.0_55는 빈 이메일 본문을 작성한 가장 초기 버전이었습니다.org.apache.commons.mail.MultiPartEmail은 비어있는 본문이있는 이메일을 보냅니다.
0
A
답변
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();
코드를 표시하십시오. –