用commons-email,javax.mail发送邮件,中文附件名乱码。
Posted bevis-byf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用commons-email,javax.mail发送邮件,中文附件名乱码。相关的知识,希望对你有一定的参考价值。
import java.io.UnsupportedEncodingException; import javax.mail.internet.MimeUtility; import org.apache.commons.mail.EmailAttachment; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.MultiPartEmail; public class MailTest { public static void sendMultiPartEmail() throws EmailException { EmailAttachment attachment = new EmailAttachment(); // 设置附件路径 attachment.setPath("C:/test.log"); attachment.setDisposition(EmailAttachment.ATTACHMENT); // 附件描述 attachment.setDescription("This is Smile picture"); String fileName = "中文名附件.log"; try { fileName = MimeUtility.encodeText(fileName); // 解决中文附件乱码 } catch (UnsupportedEncodingException e) { e.printStackTrace(); } attachment.setName(fileName); // 创建一个含附件的email MultiPartEmail multipartemail = new MultiPartEmail(); multipartemail.setHostName("smtp.qq.com");// 设置主机名称 multipartemail.setCharset("GBK");// 设置字符编码 multipartemail.addTo("您的QQ号@qq.com"); // 设置发送邮件目的地址 // 设置发送源地址和显示名,此处是自己发给自己,可以填任意邮件地址 multipartemail.setFrom("您的QQ号@qq.com", "邮件里显示的中文名"); multipartemail.setAuthentication("您的QQ号,不含@qq.com", "您的QQ密码");// 设置用户名和密码 multipartemail.setSubject("测试发送附件");// 设置主题 multipartemail.setMsg("暂无");// 设置邮件内容 multipartemail.attach(attachment);// 添加附件 multipartemail.send();// 发送邮件 } public static void main(String[] args) { try { MailTest.sendMultiPartEmail(); } catch (EmailException e) { e.printStackTrace(); } System.out.println("send over"); } }
用commons-email,javax.mail发送邮件,中文附件名乱码。
原来需要用MimeUtility.encodeText(fileNameString)转一下就可以不乱码了,记一下。
下附完整发送含附件的邮件。
以上是关于用commons-email,javax.mail发送邮件,中文附件名乱码。的主要内容,如果未能解决你的问题,请参考以下文章
错误:阅读电子邮件内容时出现 javax.mail.internet.MimeMultipart
包 javax.mail 和 javax.mail.internet 不存在
javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;