java 邮件发送工具类【来源网络自己已经实际应用】

最近在做一个Java发送邮件的工具类,现在分享一下完整的代码 
首先需要java邮件的包javax.mail-1.5.4.jar 
之前因为链接给错了,很不好意思,现在重新发一次。 
包在这里可以下载http://download.csdn.net/detail/sun2015_07_24/9392090

 

第一步:邮箱需要开通POP3/SMTP等服务

第二步:设置授权码,代码中所写的密码不是邮箱密码是授权码

 

 

  1 package com.jspxcms.common.util;
  2 import java.io.UnsupportedEncodingException;
  3 import java.util.Date;
  4 import java.util.Properties;
  5 
  6 import javax.mail.Address;
  7 import javax.mail.Message;
  8 import javax.mail.Session;
  9 import javax.mail.Transport;
 10 import javax.mail.internet.InternetAddress;
 11 import javax.mail.internet.MimeMessage;
 12 
 13 /**
 14  * 邮件发送工具类
 15  */
 16 public class SendMailUtil {
 17     
 18     /**
 19      * 邮件发送的方法
 20      * 
 21      * @param to 收件人
 22      * @param subject 主题
 23      * @param content 内容
 24      * @param smtp 协议
 25      * @param host 发送服务器服务器
 26      * @param sendName 邮件发送人
 27      * @param sendPort 邮件发送人端口
 28      * @param userName 邮件发送人名
 29      * @param userPwd 邮件发送人密码 自己测试时用的是授权码不是密码
 30      * @return 成功或失败
 31      */
 32     public static boolean send(String to, String subject, String content, String smtp, String host,
 33             String sendName, String sendPort, String userName, String userPwd) {
 34 
 35         // 第一步:创建Session
 36         Properties props = new Properties();
 37         // 指定邮件的传输协议,smtp(Simple Mail Transfer Protocol 简单的邮件传输协议)
 38         props.put("mail.transport.protocol", smtp);
 39         // 指定邮件发送服务器服务器 "smtp.qq.com"
 40         props.put("mail.host", host);
 41         // 指定邮件的发送人(您用来发送邮件的服务器,比如您的163\sina等邮箱)
 42         props.put("mail.from", sendName);
 43         if (true) {
 44             props.put("mail.smtp.starttls.enable", "true");
 45             props.put("mail.smtp.socketFactory.fallback", "false");
 46             props.put("mail.smtp.socketFactory.port", sendPort);
 47         }
 48         Session session = Session.getDefaultInstance(props);
 49 
 50         // 开启调试模式
 51         session.setDebug(true);
 52         try {
 53             // 第二步:获取邮件发送对象
 54             Transport transport = session.getTransport();
 55             // 连接邮件服务器,链接您的163、sina邮箱,用户名(不带@163.com,登录邮箱的邮箱账号,不是邮箱地址)、密码
 56             transport.connect(userName, userPwd);
 57             Address toAddress = new  InternetAddress(to);
 58 
 59             // 第三步:创建邮件消息体
 60             MimeMessage message = new MimeMessage(session);
 61             //设置自定义发件人昵称
 62             String nick="";
 63             try {
 64                 nick=javax.mail.internet.MimeUtility.encodeText("我的昵称");
 65             } catch (UnsupportedEncodingException e) {
 66                 e.printStackTrace();
 67             } 
 68             message.setFrom(new InternetAddress(nick+" <"+sendName+">"));
 69           //设置发信人
 70            // message.setFrom(new InternetAddress(sendName));
 71 
 72             // 邮件的主题
 73             message.setSubject(subject);
 74             //收件人
 75             message.addRecipient(Message.RecipientType.TO, toAddress); 
 76             /*//抄送人
 77             Address ccAddress = new InternetAddress("first.lady@whitehouse.gov"); 
 78             message.addRecipient(Message.RecipientType.CC, ccAddress);*/
 79             // 邮件的内容
 80             message.setContent(content, "text/html;charset=utf-8");
 81             // 邮件发送时间
 82             message.setSentDate(new Date());
 83 
 84             // 第四步:发送邮件
 85             // 第一个参数:邮件的消息体
 86             // 第二个参数:邮件的接收人,多个接收人用逗号隔开(test1@163.com,test2@sina.com)
 87             transport.sendMessage(message, InternetAddress.parse(to));
 88             return true;
 89         } catch (Exception e) {
 90             e.printStackTrace();
 91         }
 92         return false;
 93     }
 94     
 95     public static void main(String[] args) {
 96         // 您要发送给谁,标题,内容
 97         //SendMailUtil.send("*****@qq.com", "标题", "内容", "smtp", "smtp.qq.com", "发送人邮箱", "端口号", "邮箱用户名", "邮箱密码");
 98         SendMailUtil.send("*********@qq.com", "标题", "内容", "smtp", "smtp.163.com", 
 99                 "181467089**@163.com", "", "181467089**", "**123456");
100     }
101 
102 }

 

posted @ 2016-11-04 14:51  涤新云  阅读(914)  评论(0编辑  收藏  举报