java mail issuejava mail issuehttps://liferay.dev/en/c/message_boards/find_thread?p_l_id=119785333&threadId=1214109912024-03-29T05:59:09Z2024-03-29T05:59:09Zjava mail issueScarletake Bwihttps://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=1214109902022-04-28T09:41:21Z2022-04-28T09:41:19Z<p>hi </p>
<p>in liferay ce 7.4 ga19</p>
<p>i use javax.mail in build.gradle</p>
<pre>
<code class="language-java">dependencies {
compileOnly group: "com.liferay.portal", name: "release.portal.api"
compileOnly group: "javax.mail", name: "javax.mail-api", version: "1.4.4"
cssBuilder group: "com.liferay", name: "com.liferay.css.builder", version: "3.0.2"
}</code></pre>
<p>in service-builder module, it work fine, i can creating file and put
it as attachment.</p>
<p>but in my mvc-module, it can not work when i add file </p>
<pre>
<code class="language-java"> MailMessage mailMessage = new MailMessage();
InternetAddress from = new InternetAddress(Constant.DEFAULT_MAIL_SENDER_ADDRESS);
from.setPersonal(Constant.DEFAULT_MAIL_SENDER_PERSONAL);
mailMessage.setFrom(from);
mailMessage.setHTMLFormat(true);
mailMessage.setBody(message.toString());
mailMessage.setSubject("test notice");
mailMessage.setTo(internetAddressArrayList.toArray(new InternetAddress[internetAddressArrayList.size()]));
mailMessage.addFileAttachment(vmiInfoRecordFileData);
MailEngine.send(mailMessage);</code></pre>
<p>same code, but it just doesn't work in portlet class when i add file attachment.</p>
<p> </p>
<p>the exception </p>
<blockquote>
<p>com.liferay.portal.kernel.log.LogSanitizerException:
javax.activation.UnsupportedDataTypeException: no object DCH for
MIME type multipart/mixed; __
boundary="----=_Part_28_382286606.1651138290581"
[Sanitized]<br /> at
javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:896)
~[?:1.8.0_202]<br /> at
javax.activation.DataHandler.writeTo(DataHandler.java:317)
~[?:1.8.0_202]<br /> at
javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1670)
~[mail.jar:1.6.6-SNAPSHOT]<br /> at
javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1889)
~[mail.jar:1.6.6-SNAPSHOT]<br /> at
com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1300)
~[mail.jar:1.6.6-SNAPSHOT]<br /> at
com.liferay.petra.mail.MailEngine._send(MailEngine.java:635) ~[com.liferay.petra.mail.jar:?]</p></blockquote>
<p>i also try use api</p>
<pre>
<code class="language-java"> public static void send(
InternetAddress from, InternetAddress[] to, InternetAddress[] cc,
InternetAddress[] bcc, InternetAddress[] bulkAddresses,
String subject, String body, boolean htmlFormat,
InternetAddress[] replyTo, String messageId, String inReplyTo,
List<FileAttachment> fileAttachments)</code></pre>
<p>it doesn't work too.</p>
<p>but after i put </p>
<pre>
<code class="language-java">MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();
mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
mc.addMailcap("message/rfc822;; x-java-content- handler=com.sun.mail.handlers.message_rfc822"); </code></pre>
<p>befor i send it, it work.</p>
<p> </p>
<p>i'd like know why same code have different response. thanks in advance.&