0

Я пытаюсь отправить приглашение на встречу с помощью Javamail. В многоголосных я создаю три mimebodypart, 1.html почты часть тела 2.Calendar Inivte Часть 3.Signature часть изображения (эта часть является проблемой)Как я могу избежать создания файла «AT00001.bin» вместо изображения в качестве основной части приглашения на собрание электронной почты?

, но когда я отправить почту, подпись часть изображения преобразуется в AT00001.bin и отображается вместо изображения подписи.

Изображение отображается, если я удаляю приглашение на участие в календаре из почты. После некоторых исследований я узнал, что часть вложения должна быть последней в почте, чтобы избежать создания этого файла, но после этого проблема продолжается. (Как вы можете видеть в последовательности добавления mimebody)

код части, как показано ниже:

 Multipart multipart = new MimeMultipart("mixed"); 
     BodyPart messageBodyPart = buildHtmlTextPart(); //html is read and added to the mail body part 
     BodyPart calendarPart = buildCalendarPart(); 
     BodyPart signatureImagePart = buildSignatureImagePart(); //image is read and added as a content part of html. 

     multipart.addBodyPart(messageBodyPart); 
     multipart.addBodyPart(calendarPart); 
     multipart.addBodyPart(signatureImagePart); 

buildSignatureImagePart(), как показано ниже,

 MimeBodyPart signatureimagepart = new MimeBodyPart(); 
     DataSource fds = new FileDataSource(filePath); //filepath is image file location 

     signatureimagepart.setDataHandler(new DataHandler(fds)); 
     signatureimagepart.setHeader("Content-ID", "<my-image-id>"); 

buildHtmlTextPart(), как показано ниже,

 MimeBodyPart descriptionPart = new MimeBodyPart(); 

     descriptionPart.setContent("<html><body><b>Test</b> email <img src='cid:my-image-id'></body></html>", "text/html; charset=utf-8"); 

Скажите, пожалуйста, если я делаю что-то неправильно в этом, чтобы получить часть изображения. Есть ли другой способ сделать то же самое?

ответ

0

Структура вашего сообщения неверна.

Что вы хотите, это внешний maultipart/mixed, первая часть тела которого является многочастной/связанной, вторая часть тела которой является вложением календаря. У multipart/related есть две части - текст html и изображение подписи, на которое он ссылается.

+0

Да, вы правы Билл, поэтому вы говорите, что я должен проектировать что-то подобное, –

+0

outermultipart ---> 1. multipart (html body + signature) 2. Приглашение к календарю –

+0

Спасибо за вашу помощь Билл. –