用Java Mail和Commons-email发简单的邮件

如何用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实现的,所以要依赖于JavaMailmail.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


你可能感兴趣的:(java mail)