我用JavaMailSender发了一封电子邮件,里面有html,如下所示:
String html = "<h2>RFC INVALIDOS en México:</h2>"+
"<h4>Se adjunta el siguiente listado de RFC inválidos al día de la fecha.</h4>" +
"<h3>Saludos!!!</h3>";
MimeMessageHelper helper = return new MimeMessageHelper(mimeMessage, true); // some helper
helper.setSubject(message.getSubject());
helper.setText(html, true);看"México“、"inválidos”和"día"中的元音(á,é,í)。
邮件被截取了,告诉我更多的东西要看:

请注意以下部分:
..。
[医]门萨吉
但如果我发的时候没有引用元音:
String html = "<h2>RFC INVALIDOS en Mexico:</h2>"+
"<h4>Se adjunta el siguiente listado de RFC invalidos al dia de la fecha.</h4>" +
"<h3>Saludos!!!</h3>";**请看“墨西哥”、“残废”和“迪亚”中的元音,(a,e,i)。
这封信发得很准,很完美。

有什么线索吗?
发布于 2019-07-07 00:16:12
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8");
在他们的示例中,它被实现为抽象对象定义:
mailSender.send(new MimeMessagePreparator() {
public void prepare(MimeMessage mimeMessage) throws MessagingException {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8"); // Here is where it seems the encoding can be set, through this helper class.
//...我还发现了一些很酷的东西,看看api。如果您可以将您的签名作为一个小kb图像资源,并以这种方式发送,那么您甚至可能会更容易。这使您不必担心UTF-8在这种情况下。
message.addInline("signature.png", new ClassPathResource("img/signature.png"));不管怎么样,希望这能帮上忙。如果我能为你解释得更好的话,请告诉我。(UTF-8)
发布于 2019-07-05 20:17:49
最后,在@Anish B.的间接帮助下,我找到了解决方案:
有一个类MimeMessageHelper,该类有几个构造函数:
public MimeMessageHelper(MimeMessage mimeMessage)
public MimeMessageHelper(MimeMessage mimeMessage, String encoding)
public MimeMessageHelper(MimeMessage mimeMessage, boolean multipart)
public MimeMessageHelper(MimeMessage mimeMessage, boolean multipart, String encoding)我用的是:
public MimeMessageHelper(MimeMessage mimeMessage, boolean multipart)我把它改成了:
public MimeMessageHelper(MimeMessage mimeMessage, boolean multipart, String encoding)看起来是:
protected MimeMessageHelper createMimeMsg(MimeMessage mimeMessage) throws MessagingException {
return new MimeMessageHelper(mimeMessage, true, "UTF-8");
}看起来默认的编码不是"UTF-8",对于该助手,默认编码是空。即使我将html设置为"UTF-8“,它也不会识别它。我不得不把它作为mime主题编码的一部分。
最后,通过正确地给出编码,解决了该问题。
发布于 2019-07-02 10:10:18
当“身体高度”超过软件监视的“一定高度”时,电子邮件编辑器就会“折叠”邮件体。
现在,您的总体“邮件体高度”是邮件正文中每一行的总和。现在每个字母都有一个高度,这取决于您是否使用带有“重音”的字母,有和没有重音字符的字母的“高度”不必相同。
在这个特殊的例子中,前者没有吸引‘折叠’,而后者在你使用的电子邮件软件中吸引。
假设您在浏览器中查看这三行,则可以研究浏览器“developer tools”中的“行高”,并最终确定使用重音字符时单个行高更多。
我敢打赌,缩小字体大小,你不应该得到‘.’(省略号)。下面是一个更爆炸性的讨论与全面的历史和规范参考,以及什么不是在技术上剖析字体。
https://stackoverflow.com/questions/56760815
复制相似问题