使用郵件通知方式實現異常報警功能

首先咱們須要瞭解一下郵件發送(SMTP)和郵件接收(POP3)的協議:      SMTP(Simple MailTransfer Protocol)即簡單郵件傳輸協議, 它是一組用於由源地址到目的地址傳送郵件的規則,由它來控制郵件的中轉方式。 SMTP協議屬於TCP/IP協議簇,它幫組每臺計算機在發送或中轉信件時找到下一個目的地。 SMTP服務器則是遵循SMTP協議的發送郵件服務器,用來發送或中轉發出的電子郵件。              POP3(Post Office Protocol -Version3)本協議主要用於主持客戶端遠程管理在服務器上的電子郵件。html

郵件的發送接收過程

圖片.png

咱們這裏使用網易郵箱爲例java

1.開通SMTP協議

圖片.png

圖片.png

這一步的主要目的是開通SMTP協議和獲取客戶端受權碼(受權碼須要本身設置相似於本身的郵箱密碼)bash

二,代碼實現

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 我在簡書等你");
    }

}
複製代碼

郵件通知 服務器

郵件通知
相關文章
相關標籤/搜索