gpt4 book ai didi

java - org.apache.commons.mail.MultiPartEmail 发送带有空正文的电子邮件

转载 作者:行者123 更新时间:2023-12-01 12:26:37 27 4
gpt4 key购买 nike

发送电子邮件 org.apache.commons.mail.MultiPartEmail.send() 发送带有空正文的电子邮件。我尝试过公共(public)电子邮件 1.2、1.3.1、1.3.3。 Java 1.7.0_55是最早导致邮件正文为空的版本。

最佳答案

根据http://www.oracle.com/technetwork/java/javase/7u55-relnotes-2177812.html#knownissues-7u55SAAJ 组件初始化后,javax.mail 库可能在某些情况下无法工作,从而可能破坏 javax.mail 的 JAF 设置。一个可能的解决方法是在使用 javax.mail API 之前重新添加 javax.mail 处理程序:

MailcapCommandMap mailMap = (MailcapCommandMap) CommandMap.getDefaultCommandMap();
mailMap.
addMailcap("multipart/mixed;;x-java-content-handler=com.sun.mail.handlers.multipart_mixed");"

调用新的 AttachmentPartImpl();是某些情况之一。

在应用程序中

com.sun.xml.internal.messaging.saaj.soap.MessageImpl.createAttachmentPart()

在发送电子邮件之前被调用。它除了返回 new AttachmentPartImpl() 之外什么也不做;其中包含 headers = new MimeHeaders();调用 new MimeHeaders() 不足以导致空主体发生。调用新的 AttachmentPartImpl();在发送邮件之前导致正文为空。在使用 javax.mail API 之前重新添加 javax.mail 处理程序解决了该问题。

MultiPartEmail email = new MultiPartEmail();
email.setHostName(smtpServer);
email.addTo(to);
email.setFrom(from);
email.setSubject(subject);
email.setMsg(msg);
email.setSocketTimeout(20000);
email.setSocketConnectionTimeout(20000);
// SOAPMessage soapMessage = MessageFactory.newInstance().createMessage();
// soapMessage.createAttachmentPart(); // enough for empty body
new AttachmentPartImpl(); // enough for empty body
// new MimeHeaders(); not enough for empty body
email.send();

关于java - org.apache.commons.mail.MultiPartEmail 发送带有空正文的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26282754/

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