multipart 메일의 구조

보통 첨부파일이 있는 메일이나 전송(forward)메일은 multipart로 송신하게 됩니다.
첫번째 bodypart 에는 본문을 넣어주고 두번째 이후가 첨부파일 또는 전송(forward)메일이 첨부됩니다.

이떄 첫번째 bodypart 가 본문이라고 해서 text/plain 이나 text/html 이라고 생각하기 쉬운데
gmail에서는 첫번째 본문에 대한 내용도 multipart로 보내옵니다.

내용을 확인해보니 첫번째가 text/plain이고 두번째가 text/html이네요.
둘다 똑같은 내용인걸로 보아서 MUA가 선택하여 표시하도록 배려한것 같습니다.

아래는 조사할때 출력해본 로그입니다.

[0] => javax.mail.internet.MimeBodyPart@4188af58
[0:ContentType] => multipart/alternative; boundary=047d7b15b0d3eb14f604dd81782d
[0:DataHandler] => javax.activation.DataHandler@41855fa0
[0:FileName] => null
[0:Content] => javax.mail.internet.MimeMultipart@41829c58

[0:0] => javax.mail.internet.MimeBodyPart@41740fd0
[0:0:ContentType] => text/plain; charset=UTF-8
[0:0:DataHandler] => javax.activation.DataHandler@4173cb10
[0:0:FileName] => null
[0:0:Content] => 실제 메일 본문

[0:1] => javax.mail.internet.MimeBodyPart@41740a10
[0:1:ContentType] => text/html; charset=UTF-8
[0:1:DataHandler] => javax.activation.DataHandler@41817c08
[0:1:FileName] => null
[0:1:Content] => <div dir=”ltr”>실제 메일 본문</div>

[1] => javax.mail.internet.MimeBodyPart@4187fdb0
[1:ContentType] => text/xml; charset=US-ASCII; name=”log4j.xml”
[1:DataHandler] => javax.activation.DataHandler@417dbcf0
[1:FileName] => log4j.xml
[1:Content] => <?xml version=”1.0″ encoding=”UTF-8″ ?><!DOCTYPE log4j:configuration SYSTEM “log4j.dtd”><log4j:configuration xmlns:log4j=”http://jakarta.apache.org/log4j/”></log4j:configuration>

[2] => javax.mail.internet.MimeBodyPart@41868dd0
[2:ContentType] => application/pdf; name=”=?UTF-8?B?5Y2w5Yi3IC0gY2xvdWQucGRm?=”
[2:DataHandler] => javax.activation.DataHandler@418f7270
[2:FileName] => =?UTF-8?B?5Y2w5Yi3IC0gY2xvdWQucGRm?=
[2:Content] => com.sun.mail.util.BASE64DecoderStream@418693f0

This entry was posted in Mail. Bookmark the permalink.