前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实用代码|javaMail发送邮件(文末重磅资源!)

实用代码|javaMail发送邮件(文末重磅资源!)

作者头像
KEN DO EVERTHING
发布2019-01-17 14:52:36
8131
发布2019-01-17 14:52:36
举报
文章被收录于专栏:KEN DO EVERTHING

阅读本文大概需要5分钟

JavaMail发送邮件,简单实用,了解一下呗~

1.开启邮箱MAP/SMTP服务,获取第三方授权码

以QQ邮箱为例

2.主要代码

maven依赖

代码语言:javascript
复制
<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4</version>
</dependency>
<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1</version>
</dependency>

Email工具类

代码语言:javascript
复制
public class EmailUtil {
    // 发件人电子邮箱
    private static String from = "XXXXXXX@qq.com";
    // 指定发送邮件的服务器
    private static String host = "smtp.qq.com";
    // 获取系统属性
    private static Properties properties = System.getProperties();
    private static MimeMessage message;

     static
       {
           // 设置邮件服务器
           properties.setProperty("mail.smtp.host", host);
           //设置邮件服务器端口号(默认为25)
           properties.setProperty("mail.smtp.port", "587");
           // 是否用户认证
           properties.put("mail.smtp.auth", "true");
           // 获取默认session对象
          Session session = Session.getDefaultInstance(properties,new Authenticator(){
            public PasswordAuthentication getPasswordAuthentication()
            {
                //发件人邮件用户名、密码(有些可直接使用登录密码,
                //而QQ邮箱需要使用第三方授权码,这个需要根据邮箱判断)
                return new PasswordAuthentication("XXXXXXX@qq.com", "XXXXXXX"); 
            }
           });

          try{
             // 创建默认的 MimeMessage 对象
              message = new MimeMessage(session);

             // Set From: 头部头字段
             message.setFrom(new InternetAddress(from));

          }catch (MessagingException mex) {
             mex.printStackTrace();
          }
       }

     static public void sendEmail(String toUser,String ccUser,String headTitle,String htmlContent){
         try {
            //使用的单例模式,发送过邮件后,message中收件人,抄送人等信息不会被清空,需手动清空
            //清空收件人
            message.removeHeader(Message.RecipientType.TO.toString());
            //添加多个收件人
            message.addRecipients(Message.RecipientType.TO, new InternetAddress().parse(toUser));
            //清空抄送人
            message.removeHeader(Message.RecipientType.CC.toString());
            //添加多个抄送人
             message.setRecipients(Message.RecipientType.CC, new InternetAddress().parse(ccUser));
             // 设置标题
             message.setSubject(headTitle);
             // 设置纯文本内容
             //message.setText("测试文本", "utf-8");
             // 设置html格式内容
             message.setText(htmlContent, "utf-8", "html");
             // 发送消息
             Transport.send(message);
             System.out.println("----------------Sent Email successfully------------");
        } catch (AddressException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (MessagingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

     }

     static public String createHtmlContent(){
         return "<html lang='en' style='margin: 0; padding: 0; font-family: Helvetica Neue, Microsoft Yahei, Hiragino Sans GB, WenQuanYi Micro Hei, sans-serif; font-size: 14px; text-align: center; word-break: normal; font-weight: normal;'>"
                + "<head>"
                + "<style type='text/css'>body {border-width:0;margin:0}img {border:0;margin:0;padding:0}</style><base target='_blank' />"
                + "</head>"
                + "<p>尊敬的xxx用户:</p>"
                + "<p>您好!</p>"
                + "<p>您有一个审批工单待处理,可<b>点击工单号</b>跳转进入系统</p>"
                + "<table border='3'  cellpadding='3'>"
                + "<tr><th>工单号</th><th>工单状态</th><th>工单类型</th><th>申请日期</th><th>申请人</th><th>创建时间</th>"
                + "</tr>"
                + "<tr><td><a href='http://192.168.60.160:8888/PMIS/ticketManageDetail/123'>GD12345</a></td><td>待审批</td>"
                + "<td>保障工单</td><td></td><td>2018-07-60</td><td>张三</td><td>2018-07-6 21:56:00</td>"
                + "</tr>"
                + "</table>"
                + "<p style='color:gray;font-size:12px;'>若未登录系统,请登录系统后,重新点击工单号进入工单详情页面</p>"
                + "<p style='font-family: Helvetica Neue, Microsoft Yahei, Hiragino Sans GB, WenQuanYi Micro Hei, sans-serif; text-align: center; word-break: normal; font-weight: normal; display: block; max-width: 540px; margin: 20px auto 0; padding: 0 5px; color: #bdbdbd; font-size: 12px; line-height: 22px;'>邮件来自【XXX系统】自动提醒,无需回复。<br style='margin: 0; padding: 0; font-family: Helvetica Neue, Microsoft Yahei, Hiragino Sans GB, WenQuanYi Micro Hei, sans-serif; font-size: 14px; text-align: center; word-break: normal; font-weight: normal;'></p>"
                + "</html>";
     }

    public static void main(String[] args){
        sendEmail("XXXXXXX@qq.com","XXXXXXX@qq.com,XXXXXXX@qq.com","标题:xxx",createHtmlContent());
     }

运行代码,邮件发送成功啦~


重磅好消息:小编考虑到同学们对学习资源的迫切需求,近期将整理出学习视频库和电子书库,你想要的资源全在这里,该资源永久有效,不断更新,敬请期待!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java从心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.开启邮箱MAP/SMTP服务,获取第三方授权码
  • 2.主要代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档