由于cs的csdN很多文章关于这方面的都是vip文章,而本文是免费的,盼望广大网友觉得有资助的可以多点赞和关注!
QQ邮箱授权码到这里去开启
授权码是16位的字母,填入下面的mail.setting内里的pass内里
- # 邮件服务器的SMTP地址
- host = smtp.qq.com
- # 邮件服务器的SMTP端口
- port = 465
- # 发件人(必须正确,否则发送失败)
- from = xxx@qq.com
- # 用户名(注意:如果使用foxmail邮箱,此处user为qq号)
- user = xxx
- # 密码(注意,某些邮箱需要为SMTP服务单独设置密码)
- pass = 16位授权码
- # 使用 STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展。
- starttlsEnable = true
- # 使用SSL安全连接
- sslEnable = true
- # 指定实现javax.net.SocketFactory接口的类的名称,这个类将被用于创建SMTP的套接字
- socketFactoryClass = javax.net.ssl.SSLSocketFactory
- # 如果设置为true,未能创建一个套接字使用指定的套接字工厂类将导致使用java.net.Socket创建的套接字类, 默认值为true
- socketFactoryFallback = true
- # 指定的端口连接到在使用指定的套接字工厂。如果没有设置,将使用默认端口456
- socketFactoryPort = 465
- # SMTP超时时长,单位毫秒,缺省值不超时
- timeout = 0
- # Socket连接超时值,单位毫秒,缺省值不超时
- connectionTimeout = 0
复制代码
我的Spring boot监听类,内里MailUtil.send就是发送邮箱的关键代码
- import cn.hutool.extra.mail.MailUtil;
- @Slf4j
- @Component
- public class MailEventListener {
- @Async(ThreadPoolConfig.EVENT_THREAD_POOL)
- @Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 1000L))
- @EventListener
- //监听MailDTO事件
- //如果这里是LogDTO则监听log类型的事件
- public void listen(BaseEvent<MailDTO> event) {
- // 发送邮件
- MailDTO mailDTO = event.getData();
- System.out.println("尝试发送邮件");
- MailUtil.send(mailDTO.getMail(), mailDTO.getTitle(), mailDTO.getContent(), false);
- log.info(mailDTO.getMail() + " " + mailDTO.getTitle() + " " + mailDTO.getContent());
- }
- @Recover
- public void recover(Exception e, BaseEvent<MailDTO> event) {
- // 记录日志
- log.error("邮件发送失败", e);
- }
- }
复制代码- @Data
- @Builder
- public class MailDTO {
- private String mail;
- private String title;
- private String content;
- }
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |