Java 发送邮件工具类(多个收件人,多个抄送人)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zmh458/article/details/84205480

前言

最近公司的项目用到了发送邮件的功能,所以自己自己就写了一个发送邮件的工具类,使用的是javax.mail的工具类。

添加依赖包:

 <!-- https://mvnrepository.com/artifact/com.sun.mail/javax.mail -->
        <dependency>
            <groupId>com.sun.mail</groupId>
            <artifactId>javax.mail</artifactId>
            <version>${javax.mail.version}</version>
        </dependency>
--------------------- 

叙述

    //获取到当前的时间
    private static SimpleDateFormat sdfTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    /**
     * 功能描述: 发送邮件的基本配置
     *
     * @param sendEmail     发件人地址
     * @param sendEmailPwd  授权码代替密码(更安全) 授权码的获取:进入个人邮箱,点击设置–>账户, SMTP服务选项 默认情况下这个选项是不开启的。
     *                      点击开启腾讯会进行身份验证,身份验证通过以后,会收到一个用于使用SMTP的16位口令,
     *                      验证身份的过程中把收到的口令保存下来,因为后面要使用SMTP功能必须要用到这个口令。
     * @param subject       邮件主题
     * @param content       邮件内容
     * @param toEmilAddress 收件人地址
     * @param carbonCopyEmail 抄送人地址
     * @throws Exception
     * @Title: sendEmail
     * @Description: 发送邮件工具类方法
     * @return: void
     * @since: 1.0.0 2018/11/18 19:04
     */
    public static boolean sendEmail(String sendEmail, String subject, String content,String toEmilAddress,String carbonCopyEmail, String user, String sendEmailPwd) {
        if (toEmilAddress != null) {
            //设置基本属性
            Properties properties = new Properties();
            //设置发送邮件的邮件服务器的属性(这里使用网易的smtp服务器)
            properties.put("mail.smtp.host", "smtp.tfjybj.com");
            properties.put("mail.transport.protocol", "smtp");
            //需要经过授权,也就是有户名和密码的校验,这样才能通过验证(一定要有这一条)
            properties.put("mail.smtp.auth", true);

            // 使用java发送邮件的步骤如下
            //1、创建session
            Session session = Session.getInstance(properties);
            //开启session的调试模式,可以查看当前邮件发送状态
            session.setDebug(true);
            //创建邮件对象
            MimeMessage message = new MimeMessage(session);
            try {
                //设置发件人
                message.setFrom(new InternetAddress(sendEmail));
                //设置收件人地址,以逗号隔开
                InternetAddress[] sendTo = InternetAddress.parse(toEmilAddress);
                message.setRecipients(MimeMessage.RecipientType.TO, sendTo);

                //设置收件人地址,以逗号隔开
                InternetAddress[] carbonCopy = InternetAddress.parse(carbonCopyEmail);
                message.setRecipients(MimeMessage.RecipientType.CC, carbonCopy);

                //加载标题
                message.setSubject(subject);
                // 设置发送时间
                message.setSentDate(new Date());
                // 设置邮件的文本内容
                // 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件
                Multipart multipart = new MimeMultipart();
                BodyPart contentPart = new MimeBodyPart();
                contentPart.setContent(content, "text/html;charset=utf-8");
                multipart.addBodyPart(contentPart);
                message.setContent(multipart);
                message.saveChanges(); //保存邮件
                //2、通过session获取Transport对象(发送邮件的核心API)
                Transport transport = session.getTransport("smtp");
                // 3、通过邮件用户名密码链接
                transport.connect("smtp.tfjybj.com", user, sendEmailPwd);
                //5、发送电子邮件
                transport.sendMessage(message, message.getAllRecipients());
                transport.close();//关闭连接.
                System.out.println("send success!");
                return true;
            } catch (MessagingException e) {
                e.printStackTrace();
                return false;
            }
        } else {
            return false;
        }
    }

    /**
     * 功能描述:
     *
     * @param: toEmilAddress,违纪人员邮箱地址
     * @param: username,违纪人员姓名
     * @param: disciplineEmail, 纪委邮箱地址
     * @param: disciplineName  纪委姓名
     * @return: boolean
     * @since: 1.0.0 2018/11/22 8:35
     */

    public static boolean sendEmailByData(String toEmilAddress, String username, String disciplineEmail, String disciplineName,String carbonCopyEmail) {
        SendEmailUtil se = new SendEmailUtil();
        String content = "<html>\n<body>\n";
        content += "<style class=\"fox_global_style\">div.fox_html_content {line-height: 1.5;}/* 一些默认样式 */blockquote {margin-Top: 0px;margin-Bottom: 0px;margin-Left: 0.5em}ol,ul {margin-Top: 0px;\"margin-Bottom: 0px;list-style-position: inside;}p {margin-Top: 0px;margin-Bottom: 0px}</style><div style=\"width: 720px; margin: 0 auto;\">&nbsp; &nbsp; "
                + "<div class=\"banner-has\" style=\"width: 720px; height: 100px; background: red; background:url(http://img.sobot.com/email/console/banner2.png) ; background-repeat: no-repeat; background-position: center; background-size:100%;\">&nbsp;</div>&nbsp; &nbsp; "
                + "<div style=\"padding-bottom: 25px;padding-top: 24px; background: #f7fafa; padding-left: 50px; width: 670px;margin-top: -15px;\">&nbsp; &nbsp; &nbsp; &nbsp; " + "<h2 style=\"font-size: 18px; color: #555556; margin-bottom: 15px;\">"
                + "各位纪委:"+ disciplineName + ",您好" + "</h2>&nbsp; &nbsp; " + "<div style=\"font-size: 14px; color: #6c6f70; margin-bottom: 15px;\">&nbsp; &nbsp; &nbsp; " + "<h3>经系统自动检测 ,以下同学未签到,出于安全考虑,请纪委们及时联系这些同学,辛苦啦!</h3>" + "&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "
                + "<h3>同学名单如下: " + username + "</h3>" + "<h3 style=\"font-size: 18px; color: #555556; margin-left: 445px; margin-top: 90px;\">" + sdfTime.format(new Date()) + "</h3> " + "&nbsp; &nbsp;&nbsp; &nbsp; </div>&nbsp; &nbsp; </div>&nbsp; &nbsp; "
                + "<div style=\"width:690px;background: #f7fafa; font-size: 12px; line-height: 72px; color: #a7b3b3; width: 720px;text-align: center;border-top: solid 4px white;margin-top: -15px;\">项目组 · 技术支持</div></div>" + "<br><br>"
                + "<div style=\"width:1px;height:0px;overflow:hidden\">&nbsp; &nbsp; " + "<img style=\"width:0;height:0\" src=\"http://sctrack.sendcloud.net/track/open/eyJ1c2VyX2lkIjogNDYyMTAsICJ0YXNrX2lkIjogIiIsICJlbWFpbF9pZCI6ICIxNTExMTU4MjY5MzY4XzQ2MjEwXzE2NzQ4XzgzNTYuc2MtMTBfOV81OF8yNDItaW5ib3VuZDAkMTU3MzI2MjYwMTVAMTYzLmNvbSIsICJzaWduIjogImNhNjMyNGNkY2Y0MDg0M2RhYzY3ZTRhZWI0ZWM4ZWE5IiwgInVzZXJfaGVhZGVycyI6IHt9LCAibGFiZWwiOiAwLCAiY2F0ZWdvcnlfaWQiOiA5MzI3NH0=.gif\"></div>"
                + "<div style=\"text-align:center\">&nbsp; &nbsp; " + "<div style=\"border-top:1px solid #ddd;width: 600px;display:inline-block;padding:10px\">&nbsp; &nbsp; </div></div>" + "\n" + "</body>\n</html>";
        boolean flag = se.sendEmail("[email protected]", "考勤异常--" + sdfTime.format(new Date()), content, disciplineEmail +","+ toEmilAddress, carbonCopyEmail,"xxx", "xxx");
        if (flag == true) {
            return true;
        } else {
            return false;
        }
    }

感谢您的阅读~~

猜你喜欢

转载自blog.csdn.net/zmh458/article/details/84205480