我试图使用Spring的JavaMailSenderImpl在Spring(版本3.0.5.RELEASE)中发送一封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是从应用程序上下文检索的JavaMailSenderImpl;to、from、subject、messageBody是String对象)。
为了设置内容,我还尝试:
message.setText(messageBody, true);
message.setText(messageBodyPlain, messageBodyText);我还尝试使用多部分消息(将MimeMessageHelper的第二个参数设置为true)并使用MimeMessagePreparator。
查看传递的消息,它们不包含Content-Type:或Subject头。
在测试中,我使用了公司的smtp服务器和Gmail的smtp服务器。
更新:解决问题的
原来我的问题是this other one的复制:一堆Maven依赖项包括geronimo-javamail_1.4_spec,这是格式错误的电子邮件的原因。我只需要排除这个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>发布于 2016-02-10 17:46:49
尝试创建多部分标志设置为true的MimeMessageHelper;
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "utf-8");https://stackoverflow.com/questions/35321875
复制相似问题