Отлично работает без составных частей (изменено из примера в документации Spring ):
final MimeMessagePreparator preparator = new MimeMessagePreparator() {
public void prepare(final MimeMessage mimeMessage) throws Exception {
final MimeMessageHelper message = new MimeMessageHelper(
mimeMessage);
message.setTo(toAddress);
message.setFrom(fromAddress);
message.setSubject(subject);
final String htmlText = FreeMarkerTemplateUtils
.processTemplateIntoString(configuration
.getTemplate(htmlTemplate), model);
message.setText(htmlText, true);
}
};
mailSender.send(preparator);
Но как только я изменил его на:
final MimeMessagePreparator preparator = new MimeMessagePreparator() {
public void prepare(final MimeMessage mimeMessage) throws Exception {
final MimeMessageHelper message = new MimeMessageHelper(
mimeMessage, true);
...
message.setText(plainText, htmlText);
}
};
mailSender.send(preparator);
Я получаю:
Failed message 1:
javax.mail.MessagingException: Converting attachment data failed
at com.google.appengine.api.mail.stdimpl.GMTransport.sendMessage(GMTransport.java:231)
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:402)
...
Поскольку GMTransport
является проприетарным классом Google, и источник недоступен, довольно сложно определить проблему (по крайней мере, с моими навыками). У кого-нибудь есть идеи, что попробовать дальше?
My bean config, за помощь вам , чтобы помочь мне:
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"
p:username="${mail.username}" p:password="${mail.password}"
p:protocol="gm" />