[英]Sending multi-part email from Google App Engine using Spring's JavaMailSender fails
它不需要多个部分即可正常工作(从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专有的类,并且没有可用的资源,因此很难找出问题所在(至少与我的技能有关)。 任何人都有任何下一步的想法吗?
我的bean配置,可帮助您帮助我:
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"
p:username="${mail.username}" p:password="${mail.password}"
p:protocol="gm" />
我最近遇到了这个问题,在任何网站上都找不到解决方案。 问题在于MimeMessageHelper构造函数默认使用的multipartMode参数。
更改:
MimeMessageHelper h = new MimeMessageHelper(mimeMessage, true);
至:
MimeMessageHelper h = new MimeMessageHelper(
mimeMessage,
MimeMessageHelper.MULTIPART_MODE_RELATED);
第一种形式将默认为MimeMessageHelper.MULTIPART_MODE_MIXED_RELATED
。 该文档指出:
这是自Spring 1.2.1以来的默认设置。 根据MIME规范,这可以说是最正确的MIME结构:众所周知,它可以在Outlook,Outlook Express,Yahoo Mail和Lotus Notes上正常工作。 在Mac Mail上无法正常工作。 如果您定位Mac Mail或在Outlook上遇到特定邮件的问题,请考虑改用MULTIPART_MODE_RELATED。
可能应该对其进行更新,以包括它不适用于AppEngine的Mail API。 替换模式可能不太正确,但似乎更兼容。
使用香草(javax.mail。*)JavaMail库时,我没有任何问题。 请参阅此处http://code.google.com/appengine/docs/java/mail/usingjavamail.html#Multi_Part_Messages
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.