springBoot 进行 JavaMail 发送邮件

首先呢,我们要注册一个账号,邮箱随便找一个都可以
我这里用xx邮箱举例子,注册完第一步就是开通SMTP通道


企业微信截图_1692091184686.png

企业微信截图_16920916056608.png

接下来就是代码演示了

        //邮箱服务器地址(这里的smtp是代表邮件的协议)
        String mailHost = "smtp.xxx.com";
        //是否进行权限验证(注意这里是字符串,不要用布尔类型会报错)
        String mailSmtpAuth = "true";
        //发件人邮箱
        String fromEmail = "发件人邮箱";
        //发件人邮箱授权码
        String mailPassword = "这里使用上面截图中说要保存的授权码";

        //主题信息
        String subject = "javaMail 邮件测试";
        //邮件内容
        String content = "这是一个测试邮件发送!!!!!!";
        //设置收件人
        List toMailAddressList = new ArrayList<>();
        toMailAddressList.add("收件人邮箱");
        //设置抄送人
        List ccMailAddressList = new ArrayList<>();
        ccMailAddressList.add("抄送人邮箱");
        //设置密送,其他的收件人不能看到密送的邮件地址
        List bccMailAddressList = new ArrayList<>();
        bccMailAddressList.add("密送人邮箱");

        // 配置发送邮件的环境属性
        Properties props = new Properties();
        // 邮件服务器
        props.put("mail.host", mailHost);
        //表示SMTP发送邮件,是否需要进行身份验证
        props.put("mail.smtp.auth", mailSmtpAuth);
        //构建授权信息,用于进行SMTP进行身份验证
        Authenticator authenticator = new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                //填写发件人邮箱和发件人邮箱授权码
                return new PasswordAuthentication(fromEmail, mailPassword);
            }
        };

        // 使用环境属性和授权信息,创建邮件会话
        Session mailSession = Session.getDefaultInstance(props, authenticator);
        //报错信息需要开启Session的debug模式
        mailSession.setDebug(true);
        // 创建邮件消息
        MimeMessage message = new MimeMessage(mailSession);
        try {
            //设置发件人
            InternetAddress form = null;
            if (StringUtils.isNotBlank(fromEmail)) {
                form = new InternetAddress(fromEmail);
            }
            message.setFrom(form);

            //设置收件人
            InternetAddress[] toMailAddressArray = new InternetAddress[toMailAddressList.size()];
            for (int i = 0; i < toMailAddressList.size(); i++) {
                toMailAddressArray[i] = new InternetAddress(toMailAddressList.get(i));
            }
            message.setRecipients(Message.RecipientType.TO, toMailAddressArray);

            //设置抄送人
            InternetAddress[] ccMailAddressArray = new InternetAddress[ccMailAddressList.size()];
            for (int i = 0; i < ccMailAddressList.size(); i++) {
                ccMailAddressArray[i] = new InternetAddress(ccMailAddressList.get(i));
            }
            message.setRecipients(Message.RecipientType.CC, ccMailAddressArray);

            //设置密送,其他的收件人不能看到密送的邮件地址
            InternetAddress[] bccMailAddressArray = new InternetAddress[bccMailAddressList.size()];
            for (int i = 0; i < bccMailAddressList.size(); i++) {
                bccMailAddressArray[i] = new InternetAddress(bccMailAddressList.get(i));
            }
            message.setRecipients(Message.RecipientType.BCC, bccMailAddressArray);

            //设置邮件标题
            message.setSubject(subject);
            //设置邮件的内容体
            message.setContent(content, "text/html;charset=UTF-8");
            //发送邮件(包含了保存配置, 建立通道和关闭通道)
            Transport.send(message);
        } catch (Exception e) {
            log.error("邮件发送异常:", e);
        }

你可能感兴趣的:(springBoot 进行 JavaMail 发送邮件)