我正在尝试使用Spring的JavaMailSenderImpl
在Spring(版本3.0.5.RELEASE)webapp中发送一封html电子邮件。
电子邮件已发送,但不正确:
我尝试了以下内容,但没有成功:
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, false, "utf-8");
message.setTo(to);
message.setFrom(from);
message.setReplyTo(from);
message.setSubject(StringUtils.trim(subject));
message.setSentDate(new Date());
mimeMessage.setContent(StringUtils.trim(messageBody), "text/html");
mailSenderImpl.send(mimeMessage);
(mailSender
是从应用程序上下文中检索的Spring的JavaMailSenderImpl; to
,from
,subject
,messageBody
是String
个对象。 / p>
要设置内容,我也尝试过:
message.setText(messageBody, true);
message.setText(messageBodyPlain, messageBodyText);
我还尝试使用多部分消息(将MimeMessageHelper
的第二个参数设置为true
)并使用MimeMessagePreparator
。
查看已投放的邮件,它们不包含Content-Type:
或Subject
标题。
对于我的测试,我使用了我公司的smtp服务器和Gmail的smtp服务器。
更新:问题已解决
原来我的问题是this other one的重复:包含geronimo-javamail_1.4_spec
的一堆Maven依赖项,这是导致格式错误的电子邮件的原因。我只需要排除这个jar,编辑像这样的pom.xml:
<dependency>
<groupId>org.apache.ws.commons.axiom</groupId>
<artifactId>axiom-api</artifactId>
<version>1.2.8</version>
<exclusions>
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-javamail_1.4_spec</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.ws.commons.axiom</groupId>
<artifactId>axiom-dom</artifactId>
<version>1.2.8</version>
<exclusions>
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-javamail_1.4_spec</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.ws.commons.axiom</groupId>
<artifactId>axiom-impl</artifactId>
<version>1.2.8</version>
<exclusions>
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-javamail_1.4_spec</artifactId>
</exclusion>
</exclusions>
</dependency>
答案 0 :(得分:0)
尝试创建MimeMessageHelper,并将multipart标志设置为true;
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "utf-8");