不写那么多了,直接把源码放上来吧
public static void send(Email email) {
try {
Properties p = new Properties(); // Properties p =
// System.getProperties();
p.put("mail.smtp.auth", "true");
p.put("mail.transport.protocol", "smtp");
p.put("mail.smtp.host", "你的邮件服务器");
p.put("mail.smtp.port", "端口");
// 建立会话
Session session = Session.getInstance(p);
Message msg = new MimeMessage(session); // 建立信息
msg.setFrom(new InternetAddress("发件人邮箱")); // 发件人
String toList = getMailList(email.getTo());//收件人列表
new InternetAddress();
InternetAddress[] iaToList = InternetAddress.parse(toList);
msg.setRecipients(Message.RecipientType.TO, iaToList); // 收件人
msg.setSentDate(new Date()); // 发送日期
BASE64Encoder enc = new BASE64Encoder();
//--------------------以下是重点内容-------------------
String subject = new String(email.getHead().getBytes("GB18030"),Charset.defaultCharset());
msg.setSubject("=?GB18030?B?" + enc.encode(subject.getBytes()) + "?="); // 邮件主题
msg.setContent(email.getContent(), "text/html;charset=GB18030");// 邮件内容
//--------------------结束--------------------------
// 邮件服务器进行验证
Transport tran = session.getTransport("smtp");
tran.connect("邮件服务器地址", "用户名", "密码");
tran.sendMessage(msg, msg.getAllRecipients()); // 发送
//System.out.println("邮件发送成功");
} catch (Exception e) {
e.printStackTrace();
}
}