最近开发遇到Javamail 发送邮件标题乱码问题,腾讯、网易邮箱不会乱码,阿里邮箱 标题则会乱码。解决办法:
String subject = MimeUtility.encodeWord(mailEntity.getMailSubject(), "UTF-8", "Q");
message.setSubject(subject);
发送邮件代码:
/** * 发送邮件 可以带附件 内容可为HTML * * @param mailEntity * @return * @throws GeneralSecurityException */ public static boolean sendMail(MailEntity mailEntity) throws GeneralSecurityException { // 发件人电子邮箱 final String from = mailEntity.getMailFromAddress(); // 发件人电子邮箱密码 final String pass = mailEntity.getMailFromPwd(); // 指定发送邮件的主机为 smtp.qq.com String host = mailEntity.getMailFromHost(); // 邮件服务器 String port = mailEntity.getPort(); // 获取系统属性 Properties properties = System.getProperties(); // 设置邮件服务器 properties.setProperty("mail.smtp.host", host); properties.setProperty("mail.smtp.port",port); properties.put("mail.smtp.auth", "true"); MailSSLSocketFactory sf = new MailSSLSocketFactory(); sf.setTrustAllHosts(true); properties.put("mail.smtp.ssl.enable", "false"); properties.put("mail.smtp.ssl.socketFactory", sf); // 获取默认session对象 Session session = Session.getDefaultInstance(properties, new Authenticator() {