gpt4 book ai didi

java - 使用 Spring 的 JavaMailSender 发送的 Html 邮件没有主题和纯文本

转载 作者:行者123 更新时间:2023-12-05 07:51:11 24 4
gpt4 key购买 nike

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

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

  • 他们错过了主题
  • “收件人”字段显示为空或显示为“未公开的收件人:;”
  • 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,从application context中获取;to, from, subject, messageBodyString 对象)。

设置内容,我也试过:

message.setText(messageBody, true);
message.setText(messageBodyPlain, messageBodyText);

我还尝试使用多部分消息(将 MimeMessageHelper 的第二个参数设置为 true)和 MimeMessagePreparator

查看传递的消息,它们不包含 Content-Type:Subject header 。

在我的测试中,我使用了我公司的 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>

最佳答案

尝试创建将 multipart 标志设置为 true 的 MimeMessageHelper;

MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "utf-8");

关于java - 使用 Spring 的 JavaMailSender 发送的 Html 邮件没有主题和纯文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35321875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com