Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props, auth);
MimeMessage message = new MimeMessage(session);
message.setContent("Hello", "text/plain");
logger.info(subject);
message.setSubject(subject,"utf-8");// 设置邮件主题   
message.setSentDate(new Date());// 设置邮件发送时期
Address address = new InternetAddress(from, nick,"utf-8");
message.setFrom(address);// 设置邮件发送者的地址
Address toaddress = new InternetAddress(to);// 设置邮件接收者的地址
message.addRecipient(Message.RecipientType.TO, toaddress);
// 创建一个包含HTML内容的MimeBodyPart    
Multipart mainPart = new MimeMultipart();    
BodyPart html = new MimeBodyPart();     
html.setContent(body, "text/html; charset=utf-8");    
mainPart.addBodyPart(html);    
// 将MiniMultipart对象设置为邮件内容
message.setContent(mainPart);    
logger.debug(message);
logger.debug("TO:"+to);
try {
Transport.send(message);
} catch (Exception e) {
logger.error("Send Email founds error!");
e.printStackTrace();
}

解决方案 »

  1.   

    邮箱用的是QQ企业邮箱,而且SMTP服务器已经设置为smtp.exmail.qq.com了
      

  2.   

    应该是安全认证 ssl  。
      

  3.   

    Security.addProvider(new Provider()); 
    props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    props.setProperty("mail.smtp.port", "465");
    props.setProperty("mail.smtp.socketFactory.port", "465");在代码里加了这个是可以发送的,但是把这个端口直接写死了,总感觉怪怪的
      

  4.   

    MAIL_HOSTNAME=smtp-ent.21cn.com
    MAIL_PORT=465
    用这个试试,我之前做过通过了的