目录

大橙子

VX:ZzzChChen
Phone:13403656751
Email:zxydczzs@gmail.com

X

Java邮箱发送服务

一、邮箱开启SMTP服务

这里使用QQ邮箱为示例,其他邮箱大同小异

  1. 登录QQ邮箱; (https://mail.qq.com/)

  2. 登录成功后点击“设置”;

    image.png

  3. 导航栏选择“账户”,下滑找到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”开启“SMTP”服务;

    image.png

  4. 点击开启按钮,经过短信验证后开启服务;

    image.png

  5. 短信发送后,点击我已发送,验证成功后会有一个弹出框,有一个“授权码”需要将其记下来。

    image.png

二、测试邮件发送

pom依赖

	<!--  hutool  -->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.10</version>
        </dependency>

	<!-- javax.mail  -->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>

package com.zxy.demo.mail;

import cn.hutool.extra.mail.MailAccount;
import cn.hutool.extra.mail.MailUtil;

import java.io.File;

/**
 * @description: study
 * 模块名称:
 * 说明: 邮箱发送
 * 作者(@author): zxy
 * 创建日期: 2022年1月9日14:10:55
 */

public class MailSend {
    public static void main(String[] args) {
        MailAccount account = new MailAccount();

        //SMTP服务器域名
        account.setHost("smtp.qq.com");
        //SMTP服务端口
        account.setPort(25);
        //是否需要用户名密码验证
        account.setAuth(true);
        //发送方,遵循RFC-822标准
        account.setFrom("xxxxx@qq.com");
        //用户名
        account.setUser("xxxxx@qq.com");
        //密码,可以是邮箱密码,也可以授权码
        account.setPass("xxxxx");

        /**
         * 参数说明
         * @param mailAccount 邮件认证对象
         * @param to          收件人,多个收件人逗号或者分号隔开,也可以是列表
         *                    MailUtil.send(account, CollUtil.newArrayList(""), "标题", "正文", false, new File(""));
         * @param subject     标题
         * @param content     正文
         * @param isHtml      是否为HTML格式
         * @param files       附件列表(没有可不传)。
         */
        try {
            MailUtil.send(account, "xxxxx@qq.com", "标题", "正文", false, new File(""));
        } catch (Exception e) {
            System.out.println("发送失败,错误信息:" + e);
            e.printStackTrace();    
        }
      
    }
}

三、注意事项

  1. 发送html格式的邮件,html样式可能不会适配所有邮箱,主流163,gmail邮箱是适配的,qq邮箱如果样式是在head中写着,则不会适配,需要写在行内标签style中才会生效。
  2. 抛出“连接不到SMTP服务器,端口25”异常,先从配置查起,配置如果确定无误,则查看是不是被杀毒软件干掉了(本地),如果在云服务器中运行,比如阿里云,腾讯云等,需要去控制台解封25端口,注意:不是安全组端口25放行,而是解封。可以看这篇文章(https://www.fwqbk.com/tencent/95.html)

标题:Java邮箱发送服务
作者:zzzzchen
地址:https://www.dczzs.com/articles/2022/01/09/1641709762971.html