0
我想添加文本到電子郵件的開頭並將其發回。回覆多部分電子郵件
如果這封信是MIME「text/plain」,它可以正常工作。 如果MIME「multipart/*」工作不正常。發件人收到帶有附件的回覆,而不是原始正文。
如何將文本添加到「multipart/*」電子郵件併發送給發件人?
void replyMessage(String from, int MessageNumber, String MessageText) throws Exception {
if (messages[MessageNumber].isMimeType("text/plain")) {
// it work!
Message msgReply = messages[MessageNumber].reply(false);
String originalText = messages[MessageNumber].getContent().toString().replaceAll("(?m)^", "> ");
msgReply.setFrom(new InternetAddress(from));
msgReply.setText(MessageText + "\n\n---------------\n\n" + originalText);
Transport.send(msgReply, user, pass);
} else if (messages[MessageNumber].isMimeType("multipart/*")) {
// not work!
MimeMessage msgReply = (MimeMessage) messages[MessageNumber].reply(false);
msgReply.setFrom(new InternetAddress(from));
// Create your new message part
BodyPart messageBodyPart1 = new MimeBodyPart();
messageBodyPart1.setText("Oiginal message:\n\n");
// Create and fill part for the forwarded content
BodyPart messageBodyPart2 = new MimeBodyPart();
messageBodyPart2.setDataHandler(messages[MessageNumber].getDataHandler());
// Create a multi-part to combine the parts
Multipart multipart = new MimeMultipart();
// Add parts to multi part
multipart.addBodyPart(messageBodyPart1);
multipart.addBodyPart(messageBodyPart2);
// add the Multipart to the message
msgReply.setContent(multipart);
Transport.send(msgReply, user, pass);
}
}
謝謝你的迴應。 這是我第一次使用郵件的經歷。在那之前,我認爲回覆電子郵件是一件簡單的事情)。 因此,我希望得到原始的信件,但要在第一行寫上我的文字。附件忽略。 在JavaMail附帶的例子中,我沒有發現任何類似的東西。 您能展示一個這樣的代碼的例子嗎? –