import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Properties; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class SendMail { public static String SMTP_HOST = "smtp.126.com"; public static String SMTP_PORT = "25"; public static String SMTP_PROTOCOL = "SMTP"; public static String SMTP_AUTH = "true"; public static String AUTH_USER = "t***[email protected]"; public static String AUTH_PASSWORD = "asdfsdf"; public static String FROM_ADDRESS = "*****@126.com"; /** * 发送email,目的地址为一个 * * @param to * 目的email地址 * @param title * email的标题 * @param content * email的内容 * @return 返回是否发送成功 */ public static boolean send(String to, String title, String content) { boolean isSuccess = true; if (to == null || title == null || content == null) return false; Properties property = new Properties(); // 设置一些基本属性 property.put("mail.smtp.host", SMTP_HOST); property.put("mail.smtp.port", SMTP_PORT); property.put("mail.smtp.protocol", SMTP_PROTOCOL); property.put("mail.smtp.auth", SMTP_AUTH); MyAuthenticator myauth = new MyAuthenticator(AUTH_USER, AUTH_PASSWORD); // 获得发送邮件的会话 Session mailSession = Session.getDefaultInstance(property, myauth); // 生成发送的消息 Message message = new MimeMessage(mailSession); try { // 形成发送的mail地址 InternetAddress fromAddress = new InternetAddress(FROM_ADDRESS); message.setFrom(fromAddress); InternetAddress toAddress = new InternetAddress(to); // 加入发送消息的目的地址addRecipients()两个重载函数 message.addRecipient(Message.RecipientType.TO, toAddress); // 设置消息题 message.setSubject(title); // 设置消息主题 message.setText(content); // 保存 message.saveChanges(); } catch (Exception e) { isSuccess = false; System.out.println(e.getMessage()); } // 发送mail try { Transport.send(message, message.getRecipients(Message.RecipientType.TO)); } catch (Exception e) { isSuccess = false; System.out.println(e.getMessage()); } return isSuccess; } /** * 发送email,目的地址为一组 * * @param toList * 一组email地址 * @param title * email的标题 * @param content * email的内容 * @return boolean 返回是否成功 */ public static boolean send(List<String> toList, String title, String content) { boolean isSuccess = true; if (toList == null || title == null || content == null || toList.size() == 0) return false; Properties property = new Properties(); // 设置一些基本属性 property.put("mail.smtp.host", SMTP_HOST); property.put("mail.smtp.port", SMTP_PORT); property.put("mail.smtp.protocol", SMTP_PROTOCOL); property.put("mail.smtp.auth", SMTP_AUTH); MyAuthenticator myauth = new MyAuthenticator(AUTH_USER, AUTH_PASSWORD); // 获得发送邮件的会话 Session mailSession = Session.getDefaultInstance(property, myauth); // 生成发送的消息 Message message = new MimeMessage(mailSession); try { // 形成发送的mail地址 InternetAddress fromAddress = new InternetAddress(FROM_ADDRESS); message.setFrom(fromAddress); for (String to : toList) { InternetAddress toAddress = new InternetAddress(to); // 加入发送消息的目的地址addRecipients()两个重载函数 message.addRecipient(Message.RecipientType.TO, toAddress); } // 设置消息题 message.setSubject(title); // 设置消息主题 message.setText(content); // 保存 message.saveChanges(); } catch (Exception e) { isSuccess = false; System.out.println(e.getMessage()); } // 发送mail try { Transport.send(message, message.getRecipients(Message.RecipientType.TO)); } catch (Exception e) { isSuccess = false; System.out.println(e.getMessage()); } return isSuccess; } /** * @param args */ public static void main(String[] args) { // TODO String to = "[email protected]"; String title = "title"; String content = "content "; List<String> toList = new ArrayList<String>(); toList.add(to); int i; for(;;){ // System.out.println(new Date() + ":" + SendMail.send(toList, title + (int)(1000*Math.random()), content)); try { Thread.sleep(10000); } catch (InterruptedException e) { e.printStackTrace(); } } } } class MyAuthenticator extends Authenticator { private String user; private String password; public MyAuthenticator(String user, String password) { this.user = user; this.password = password; } protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(user, password); } }