У меня есть некоторый код Javamail, который работал нормально в течение года или около того на SMTP-сервере 365 вне офиса. Недавно сервер был изменен на офис 365, и вторая многокомпонентная / альтернативная версия заканчивается двумя вложениями при отправке. Я пробовал много комбинаций вещей, которые я нашел на этом форуме и других, но ни одна не избавилась от вложений. Мои мысли сейчас склоняются к тому, что я не могу заставить это работать так, как мне хотелось бы. Мой фрагмент кода ниже. Извините, это мой первый пост, и не думаю, что я все правильно собрал. Я добавил два оператора setDisposition в надежде, что это поможет, но это не так. Расположение изменяется SMTP-сервером на «Вложение». Кто-нибудь знает, нормально ли это для офиса 365 или может дать мне несколько советов? Я определенно не эксперт по электронной почте. Спасибо.
try
{
Message forward = new MimeMessage(smtpSession);
String subject = message.getSubject();
forward.setFrom(new InternetAddress(fromEmailAddress));
setForwardingValues(forward, subject);
MimeBodyPart messageBodyPartForwardText = addEmailText();
MimeBodyPart messageBodyPartForwardHtml = addEmailHtml();
MimeBodyPart messageBodyPartHtml = getPartsToInclude(message, "html");
messageBodyPartHtml.setDisposition(Part.INLINE);
MimeBodyPart messageBodyPartText = getPartsToInclude(message, "text");
messageBodyPartText.setDisposition(Part.INLINE);
MimeMultipart mainMultipart = new MimeMultipart("mixed");
MimeMultipart multipart1 = new MimeMultipart("alternative");
MimeMultipart multipart2 = new MimeMultipart("alternative");
if (messageBodyPartForwardText != null)
{
multipart1.addBodyPart(messageBodyPartForwardText);
}
if (messageBodyPartForwardHtml != null)
{
multipart1.addBodyPart(messageBodyPartForwardHtml);
}
if (messageBodyPartText != null)
{
multipart2.addBodyPart(messageBodyPartText);
}
if (messageBodyPartHtml != null)
{
multipart2.addBodyPart(messageBodyPartHtml);
}
if (multipart1.getCount() > 0)
{
MimeBodyPart part1 = new MimeBodyPart();
part1.setContent(multipart1);
mainMultipart.addBodyPart(part1);
}
if (multipart2.getCount() > 0)
{
MimeBodyPart part2 = new MimeBodyPart();
part2.setContent(multipart2);
mainMultipart.addBodyPart(part2);
}
if (attachmentFileName != null)
{
MimeBodyPart attachmentBodyPart = new MimeBodyPart();
DataSource attachment = new FileDataSource(attachmentDir + "/" +attachmentFileName);
attachmentBodyPart.setDataHandler(new DataHandler(attachment));
attachmentBodyPart.setFileName(attachmentFileName);
mainMultipart.addBodyPart(attachmentBodyPart);
}
forward.setContent(mainMultipart);
forward.saveChanges();
Transport t = smtpSession.getTransport();