解决发送含附件的邮件附件名乱码

用commons-email,javax.mail发送邮件,中文附件名乱码。

 

原来需要用MimeUtility.encodeText(fileNameString)转一下就可以不乱码了,记一下。

 

下附完整发送含附件的邮件。

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");
	}
}

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值