- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想准备带有替代纯文本版本的简单 html 电子邮件。我不需要任何附件或内联元素。
默认情况下,如果我使用:
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8");
我得到 MimeMessageHelper.MULTIPART_MODE_MIXED_RELATED
模式。
我的电子邮件内容正文如下所示:
Content-Type: multipart/mixed;
boundary="----=_Part_8_21489995.1282317482209"
------=_Part_8_21489996.1282317482209
Content-Type: multipart/related;
boundary="----=_Part_9_21489996.1282317482209"
------=_Part_9_21489996.1282317482209
Content-Type: multipart/alternative;
boundary="----=_Part_10_2458205.1282317482209"
------=_Part_10_2458205.1282317482209
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Simple newsletter.
------=_Part_10_2458205.1282317482209
Content-Type: text/html;charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<html>
<head>
<title>Simple newsletter</title>
<head>
<body>
<p>Simple newsletter.</p>
</body>
<html>
------=_Part_10_2458205.1282317482209--
------=_Part_9_21489996.1282317482209--
------=_Part_8_21489995.1282317482209--
我能做些什么来摆脱混合的和相关的边界?
理想的解决方案是 MimeMessageHelper.MULTIPART_MODE_ALTERNATIVE
模式,但它不可用。
最佳答案
由于垃圾邮件检查器问题,我一直在寻找使用替代方法发送 html 电子邮件,但似乎 spring 不提供简单的 MimeMessageHelper.MULTIPART_MODE_ALTERNATIVE。但是,使用 MimeMessageHelper.MULTIPART_MODE_MIXED_RELATED 让我的电子邮件到达目的地。
如果您仍然想摆脱混合和相关的界限,您需要更多地控制 MIME 消息的组装方式,您可以创建 MimeMessagePreparator 接口(interface)的实现并将其传递给 JavaMailSender.send() 方法的 MimeMessage。
sender.send(new MessagePreparator());
private class MessagePreparator implements MimeMessagePreparator {
public void prepare(MimeMessage msg) throws Exception {
// set header details
msg.addFrom(InternetAddress.parse(from));
msg.addRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
msg.setSubject(subject);
// create wrapper multipart/alternative part
MimeMultipart ma = new MimeMultipart("alternative");
msg.setContent(ma);
// create the plain text
BodyPart plainText = new MimeBodyPart();
plainText.setText("This is the plain text version of the mail.");
ma.addBodyPart(plainText);
// create the html part
BodyPart html = new MimeBodyPart();
html.setContent(
"<html><head></head><body>
<h1>This is the HTML version of the mail."
+ "</h1></body></html>", "text/html");
ma.addBodyPart(html);
}
}
}
将 BodyPart 实例添加到 MimeMultipart 的顺序很重要,您应该最后添加具有最优选消息格式的 BodyPart。
This is an excerpt taken from Pro Spring 2.5 chapter13 - § Sending an HTML Message with a Plain Text Alternative ; APRESS ISBN-13 (pbk): 978-1-59059-921-1
关于java - 使用 MimeMessageHelper (Spring Framework) 准备简单的多部分/替代电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3536826/
我可以很好地发送电子邮件,但附件从未添加到邮件中。下面是我的代码,创建了一个用于测试目的的临时文件。 我错过了什么? 我尝试了其他方法来添加附件以及使用 FileInputStreamResource
我正在用 MimeMessageHelper 发送邮件在我的 Spring Boot 应用程序中。 我如何告诉它对包含字母 的文件名进行编码à ,这样它才能正确显示? 将编码设置为 UTF-8构建时M
我想知道在 spring 中什么时候使用哪个消息类来发送电子邮件。 org.springframework.mail.SimpleMailMessage org.springframework.mai
我已经配置了我的电子邮件属性,但从地址发送电子邮件时正在动态更改 我尝试使用与发件人地址相同的电子邮件地址,然后它可以工作,但如果我使用不同的电子邮件地址,则会出现权限问题。 电子邮件配置是:
我想知道在 spring 中什么时候使用哪个消息类来发送电子邮件。 org.springframework.mail.SimpleMailMessage org.springframework.mai
正如标题所示,我无法发送同一文件的两个单独附件,另一方面,发送两个或多个不同附件(不同文件)没有问题。我从 Android 设备接收 newMessage(使用改造),附件内容以 byte[] 形式发
在 Spring 中,有一个选项可以设置邮件编码: MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true,
我需要将多个抄送地址添加到我的邮件中,但我不断收到以下异常: javax.mail.internet.AddressException: Illegal Address (email@email.co
我想准备带有替代纯文本版本的简单 html 电子邮件。我不需要任何附件或内联元素。 默认情况下,如果我使用: MimeMessageHelper message = new MimeMessageHe
我正在 Spring 的帮助下发送邮件,其中我想要 CC 中的多个电子邮件 ID,所有人都会收到邮件,但问题是当他们在rackspace(apps.rackspace.com)中打开电子邮件时,它只显
我是一名优秀的程序员,十分优秀!