首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Spring的JavaMailSender发送的Html没有主题和纯文本

用Spring的JavaMailSender发送的Html没有主题和纯文本
EN

Stack Overflow用户
提问于 2016-02-10 17:24:27
回答 1查看 3.2K关注 0票数 3

我试图使用Spring的JavaMailSenderImpl在Spring(版本3.0.5.RELEASE)中发送一封html电子邮件。

电子邮件是发送的,但它们是不正确的:

  • 他们漏掉了这个话题
  • To字段显示为空或“未披露的收件人:;”
  • html正文以纯文本形式显示。

我尝试了以下几点,但没有成功:

代码语言:javascript
运行
复制
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;tofromsubjectmessageBodyString对象)。

为了设置内容,我还尝试:

代码语言:javascript
运行
复制
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:

代码语言:javascript
运行
复制
<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>
EN

回答 1

Stack Overflow用户

发布于 2016-02-10 17:46:49

尝试创建多部分标志设置为true的MimeMessageHelper;

代码语言:javascript
运行
复制
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "utf-8");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35321875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档