美文网首页
使用邮件通知方式实现异常报警功能

使用邮件通知方式实现异常报警功能

作者: CoderZS | 来源:发表于2019-06-17 10:31 被阅读0次

    首先我们需要了解一下邮件发送(SMTP)和邮件接收(POP3)的协议:
    SMTP(Simple MailTransfer Protocol)即简单邮件传输协议, 它是一组用于由源地址到目的地址传送邮件的规则,由它来控制邮件的中转方式。 SMTP协议属于TCP/IP协议簇,它帮组每台计算机在发送或中转信件时找到下一个目的地。 SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。
    POP3(Post Office Protocol -Version3)本协议主要用于主持客户端远程管理在服务器上的电子邮件。

    邮件的发送接收过程
    图片.png

    我们这里使用网易邮箱为例

    1.开通SMTP协议
    图片.png 图片.png

    这一步的主要目的是开通SMTP协议和获取客户端授权码(授权码需要自己设置类似于自己的邮箱密码)

    二,代码实现

    1.引入依赖
    <dependency>
       <groupId>com.sun.mail</groupId>
       <artifactId>javax.mail</artifactId>
       <version>1.6.0</version>
    </dependency>
    
    2.代码编写
    /**
     * 邮件
     * author:CoderZS
     */
    public class javaMailTest {
    
        private static final String HOST = "smtp.163.com";   // 发送邮件邮箱的配置
        private static final Integer PORT = 25;
        private static final String USERNAME = "zs520it@163.com";//163邮箱账号
        private static final String PASSWORD = "000000";//163邮箱---授权码
        private static final String EMAILFORM = "zs520it@163.com";  //发送邮件的用户
        private static JavaMailSenderImpl mailSender = createMailSender();
    
    
        private static final String EMAILNAME = "数据异常报告";  //收到邮件显示对方邮件名称 总体名称
        private static final String EMAILTOPNAME = "定时任务1数据采集异常";  //邮件名称
    
        /**
         * 邮件发送器
         *
         * @return 配置好的工具
         */
        private static JavaMailSenderImpl createMailSender() {
            JavaMailSenderImpl sender = new JavaMailSenderImpl();
            sender.setHost(HOST);
            sender.setPort(PORT);
            sender.setUsername(USERNAME);
            sender.setPassword(PASSWORD);
            sender.setDefaultEncoding("Utf-8");
            Properties p = new Properties();
            p.setProperty("mail.smtp.timeout", "25000");
            p.setProperty("mail.smtp.auth", "false");
            sender.setJavaMailProperties(p);
            return sender;
        }
    
        /**
         * 发送邮件
         * @param to      邮件接收人
         * @param subject 主题
         * @param html    发送内容
         * @throws UnsupportedEncodingException 异常
         */
        public static void sendHtmlMail(String to, String subject, String html) {
            try {
                MimeMessage mimeMessage = mailSender.createMimeMessage();
    
                // 设置utf-8或GBK编码,否则邮件会有乱码
                MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "utf-8");
                messageHelper.setFrom(EMAILFORM, EMAILNAME);
                messageHelper.setTo(to);
                messageHelper.setSubject(subject);
                messageHelper.setText(html, true);
                mailSender.send(mimeMessage);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        public static void main(String[] args) {
         sendHtmlMail("769671508@qq.com", EMAILTOPNAME, "数据入库异常! CoderZS 我在简书等你");
        }
    
    }
    

    邮件通知


    邮件通知

    相关文章

      网友评论

          本文标题:使用邮件通知方式实现异常报警功能

          本文链接:https://www.haomeiwen.com/subject/yxmofctx.html