zoukankan      html  css  js  c++  java
  • 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         // 指定邮件的发送人(您用来发送邮件的服务器,比如您的163sina等邮箱)
     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 }
  • 相关阅读:
    Java之冒泡完整理解
    Java 之数组的复制,
    python 小白之路(跳动的球)
    小白之旅,Python运算符
    在学习枯燥的Java中遇见美丽的Jframe,窗体中的单选按钮(JRadioButton)
    自定义的无数据提示界面
    北京地铁站经纬度集合(包含大部分)
    自定义UItextFiled,限制TextFiled 的输入长度
    消息发送机制的利用
    app 后台持续定位
  • 原文地址:https://www.cnblogs.com/dixinyunpan/p/6030292.html
Copyright © 2011-2022 走看看