//需要两个jar包:mail.jar和/commons-email-1.2.jar
public class sendEmail {
//从一个html中用正则表达式抓取邮箱地址,存入list中
public static List<String> readHtml(){List<String> list = new ArrayList<String>();
try {
BufferedReader br = new BufferedReader(new FileReader("G:\\Noname1.html"));
String line = "";
Pattern p = Pattern.compile("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+");
while((line=br.readLine()) != null) {
Matcher m = p.matcher(line);
while(m.find()) {
list.add(m.group());
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return list;
}
public static void main(String[] args) {
try {
// 不要使用SimpleEmail,会出现乱码问题
HtmlEmail email = new HtmlEmail();
// 这里是发送服务器的名字:,126的如下:
email.setHostName("smtp.126.com");
// 编码集的设置
email.setCharset("utf-8");
List<String> list = sendEmail.readHtml();
for (Iterator<String> it = list.iterator(); it.hasNext();) {
String addTo = (String) it.next();
System.out.println(addTo);
email.addTo(addTo);
}
// 发送人的邮箱
email.setFrom("***@126.com");
// 如果需要认证信息的话,设置认证:用户名-密码。分别为发件人在邮件服务器上的注册名称和密码
email.setAuthentication("***@126.com", "******");
email.setSubject("这是一封测试邮件6");
// 要发送的信息
email.setMsg("<b>邮件测试内容</b>");
// 发送
email.send();
} catch (EmailException e) {
e.printStackTrace();
}
}
}
注:从html中抓取的邮箱地址不应超过上百个,应保持在20个左右。