用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,java,java,javamail,javamail,电子邮件,commons-email)