Java发邮件配置-hutool+腾讯企业邮箱

1、技术选型

1.1、hutool工具
1.2、javax.mail
1.3、腾讯企业邮箱

2、环境准备

2.1、pom

		<!--javax.mail-->
		<dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>        
         <!--hutool 地址:https://hutool.cn -->         
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.3.2</version>
        </dependency>

2.2、腾讯企业邮箱设置:

2.2.1 开启安全登录
(1)打开安全登录(需提前绑定微信)开启安全登录
注意:开启安全登录后需要刷新页面后用微信扫码重新登陆

(2)生成客户端专用密码
在这里插入图片描述

在这里插入图片描述
注意:设置密码后需要自行复制保存起来,否则又需要重新生成!该密码后续会用到
2.2.2 不开启安全登录
在这里插入图片描述
只需要有可登录密码即可,如没有或忘记密码点击上图***修改密码***按钮重置即可。

3、编码

3.1 采用配置文件

(1)pom文件中加入步骤2.1中的依赖坐标
(2)在resources目录下新建config/mail.setting文件,配置如下:
# 邮件服务器的SMTP地址,可选,默认为smtp.<发件人邮箱后缀>
host = smtp.exmail.qq.com
# 邮件服务器的SMTP端口,可选,默认25,企业邮箱中配置的为465
port = 465
# 发件人(必须正确,否则发送失败)
from = test@test.cn
# 用户名,默认为发件人邮箱前缀,如不行请回到邮箱登陆页查看登录时使用的用户名
user = test@test.cn
# 密码(注意,某些邮箱需要为SMTP服务单独设置授权码,详情查看相关帮助)
pass = testpwd
#使用 STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展。
starttlsEnable = true

(3)使用cn.hutool.extra.mail.MailUtil进行测试即可

MailUtil.send("testPhone@163.com","ceshi","ceshi",false);

3.2 采用纯代码模式

 		MailAccount account = new MailAccount();
        account.setHost("smtp.exmail.qq.com");
        account.setPort(465);
        account.setAuth(true);
        account.setFrom("test@test.cn");
        account.setUser("test@test.cn");
        account.setPass("testpwd");
        account.setSslEnable(true);
        MailUtil.send(account,"test@163.com","ceshi","ceshi",false);

3.3 坑

按照hutool文档说明

# 用户名,默认为发件人邮箱前缀
user = hutool

在user处配了个@前的名称,报以下错误

Caused by: javax.mail.AuthenticationFailedException: 535 Error: ÇëʹÓÃÊÚȨÂëµÇ¼¡£ÏêÇéÇë¿´: http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256

	at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:826)
	at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:761)
	at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:685)
	at javax.mail.Service.connect(Service.java:317)
	at javax.mail.Service.connect(Service.java:176)
	at javax.mail.Service.connect(Service.java:125)
	at javax.mail.Transport.send0(Transport.java:194)
	at javax.mail.Transport.send(Transport.java:124)
	at cn.hutool.extra.mail.Mail.doSend(Mail.java:372)
	at cn.hutool.extra.mail.Mail.send(Mail.java:356)
	... 5 more

乱码为控制台输出即乱码,后改为邮箱全称后方可使用

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值