java发送邮件源码

75 阅读1分钟
        //服务器连接信息
        Properties pros = new Properties();
        pros.put("mail.smtp.host", mailHost);
        pros.put("mail.smtp.port", mailPort);
        pros.put("mail.smtp.auth", "true");
//        pros.put("mail.smtp.starttls.enable", "false"); //禁用tls
        // 开启ssl加密
        MailSSLSocketFactory sf = null;
        try {
            sf = new MailSSLSocketFactory();
        } catch (GeneralSecurityException e) {
            e.printStackTrace();
        }
        sf.setTrustAllHosts(true);
        pros.put("mail.smtp.ssl.enable", "true"); //开启ssl
        pros.put("mail.smtp.ssl.socketFactory", sf);

        pros.put("mail.transport.protocol", "smtp"); //发送邮件协议名称
        pros.put("mail.smtp.ssl.protocols", "TLSv1.2"); //指定TLS版本
        pros.put("mail.smtp.ssl.trust", mailHost); //信任该邮箱服务器地址

        //创建session会话
        Session session = Session.getInstance(pros,new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(mailUsername, mailPassword);
            }
        });
        log.info("邮件session会话创建成功");
        //邮件信息
        MimeMessage mimeMessage = new MimeMessage(session);
        mimeMessage.setSubject("短信标题");
        mimeMessage.setText("短信内容");
        mimeMessage.setFrom(new InternetAddress(mailUsername));
        mimeMessage.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(mailToMail));
        Transport.send(mimeMessage);
        log.info("短信余量预警邮件发送完成");

springboot配置

mailConfig:
  host: smtp.qq.com #smtp服务器
  port: 465 #smtp服务端口
  username: xxxx@qq.com #发送者邮箱
  password: xxxxxxxx #授权码
  toMail: xxxx@139.com #目标邮箱