나는 다음과 같은 코드로 이메일을 보내는 Java 코드를 가지고 있습니다. 사실 저는 Httprequest 매개 변수에서 Mimemessage를 받았고 mimemessage에서 일부 내용을 기존 본문에 추가 할 것입니다.JavaMail 콘텐츠 전송 인코딩 문제
Mimemessage가 Multipart 콘텐츠 형식 인 경우 메시지를 보내는 동안 문제가 발생하지 않습니다.
메시지가 text/plain 및 text/html content-type 인 경우 내가 설정 한 콘텐츠 전송 인코딩이 본문에 적용되지 않았습니다.
이 docsQ 기준 자료 : JavaMail에 나를 위해 모든 인코딩 및 디코딩을 수행하더라도, 내가 수동으로 일부 신체 부위의 인코딩을 제어 할 필요가있다. A : 드문 경우이지만 인코딩을 제어해야하는 경우 JavaMail의 기본 동작을 재정의하는 여러 가지 방법이 있습니다. 간단한 접근 방식은 다음과 같습니다. 전체 메시지를 만든 후 msg.saveChanges()를 호출 한 다음 mbp.setHeader ("Content-Transfer-Encoding", "base64")와 같은 것을 사용하여 지정된 본문 부분에 대해 base64 인코딩을 적용합니다.
또 다른 방법은 MimeBodyPart를 서브 클래스 화하고 updateHeaders 메서드를 재정의하여 super.updateHeaders()를 먼저 호출 한 다음 위와 같이 Content-Transfer-Encoding 헤더를 설정하는 것입니다.
위의 경우에도 적용됩니다. 그러나 그것은 나를 위해 작동하지 않습니다.
InputStream ins = request.getInputStream();
MimeMessage msg = new MimeMessage(session,ins);
msg.setContent("some non-Ascii content","text/plain; charset="UTF-8"");
//Tried setheader before saveChanges() method, also doesn't work for me
//msg.setHeader("Content-Transfer-Encoding","base64");
msg.saveChanges();
//Now tried based on above docs after saveChanges method, also doesn't work
msg.setHeader("Content-Transfer-Encoding","base64");
이 문제를 해결하는 데 도움을주십시오.