如何用java发邮件,貌似都知道有个JavaMail。在Apache的网站的一个小角落,还有个叫Commons-email的小精灵…
本文分别使用这两个工具,使用QQ邮箱,通过用户名、密码发送邮件。
1. JavaMail
下载地址:
http://www.oracle.com/technetwork/java/javamail/index.html
下载下来解压出来有个mail.jar..
下面的函数用JavaMail实现邮件发送方法。
解释一下参数:
String smtpHost:smtp是“简单邮件传输协议”,详情可查看百度百科和相关资料,本文就不解释了。只要知道,一个邮箱会对应一个SMTP。例如QQ邮箱的smtp是smtp.qq.com,在其网站上可以找到。
String username:登录邮箱的用户名,如[email protected]。
String password:密码。
String to:接收方邮箱。
String title:邮件标题。
String content:邮件内容。
public static void sendMailByJavaMail(String smtpHost, String username,
String password, String to, String title, String content)
throws MessagingException {
// 创建一个session
Session session = Session.getDefaultInstance(new Properties());
// 一条邮件(消息)
Message mailMessage = new MimeMessage(session);
// 设置发件人
mailMessage.setFrom(new InternetAddress(username));
// 设置邮件标题
mailMessage.setSubject(title);
// 设置邮件内容
mailMessage.setText(content);
Transport trans = null;
try {
trans = session.getTransport("smtp");
trans.connect(smtpHost, username, password);
trans.sendMessage(mailMessage, InternetAddress.parse(to));
} catch (MessagingException e) {
throw e;
} finally {
if (trans !=null) {
try {
trans.close();
} catch (Exception e) {
}
}
}
}
2. Apache commons-email
下载地址:
http://commons.apache.org/email/index.html
下载下来解压有个commons-email-**.jar
commons-email本身也是使用JavaMail实现的,所以要依赖于JavaMail的mail.jar包。commons-email是在JavaMail的基础上的封装,使用起来更简单。
(参数同上面的方法)
public static void sendMailByCommonsEmail(String smtpHost, String username,
String password, String to, String title, String content)
throws EmailException {
SimpleEmail email = new SimpleEmail();
email.setHostName(smtpHost);
email.setAuthentication(username, password);
email.addTo(to);
email.setFrom(username);
email.setSubject(title);
email.setMsg(content);
email.send();
}
3.Test
public static void main(String[] args)
{
try {
MailUtil.sendMailByJavaMail("smtp.qq.com","****发送方****@qq.com","****您的密码****","****接收方****@qq.com","标题1","内容1");
MailUtil.sendMailByCommonsEmail ("smtp.qq.com","****发送方****@qq.com","****您的密码****","****接收方****@qq.com","标题2","内容2");
} catch (Exception e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
}
}
从上面代码可以看出,使用Apache的commons-email比JavaMail简单的多。所以,在没有特殊需求的情况下,请珍爱生命,使用commons-email。
作者:叉叉哥 转载请注明出处:http://blog.csdn.net/xiao__gui/article/details/8108214