利用hutool工具发送邮件

最近公司有发送给用户发送邮件消息功能,找了一下,利用hutool工具挺简单的,它封装的挺彻底的。直接上代码吧。

首先,引入maven,如下:

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

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

测试代码如下:

package com.chenjianwen.test;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.extra.mail.MailAccount;
import cn.hutool.extra.mail.MailUtil;
import org.junit.Test;

/**
 * @Description: <br>
 * @Date: Created in 2019/8/30 <br>
 * @Author: chenjianwen
 */
public class MailTest {

    @Test
    public void sendMail(){
        MailAccount account = new MailAccount();
        account.setHost("smtp.163.com");
        account.setPort(25);
        account.setAuth(true);
        account.setFrom("ChenJevin@163.com");
        account.setUser("ChenJevin@163.com");
        account.setPass("xxx"); //密码
        MailUtil.send(account, CollUtil.newArrayList("alichen3116@aliyun.com"), "测试", "邮件来自Hutool测试", false);
    }
}

上面的几个参数说明一下:

MailAccount -- MailAccount对象,直接new一个。

host -- 服务器,这个需要在自己的邮箱中开通smtp服务,然后自动有的,如下图:

port -- 端口,默认25;

auth -- 默认true;

from -- 你的邮箱地址;

user -- 写你的邮箱即可;

password -- 你的邮箱密码;

 

然后调用MailUtil.send();方法:

第一个参数是mailAccount对象,也就是你上面new的。

第二个参数是你要发送消息的邮箱,可以是一个String(一个邮箱),也可以是一个Collection多个邮箱的集合。

第三个参数是发送邮件的主题。

第四个参数是邮件内容。

第四个参数默认为false即可。

最后,上述发送的邮件效果如下

### 使用Java通过QQ邮箱SMTP服务器发送电子邮件 为了使用Java代码通过QQ邮箱的SMTP服务器发送电子邮件,需遵循几个重要步骤并配置相应环境。首先,确保已开通QQ邮箱的SMTP服务,并获取到用于第三方登录的授权码[^1]。 #### 开通SMTP服务与获取授权码 进入QQ邮箱设置页面中的“账户”选项卡下找到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”,开启SMTP服务开关,并按照提示操作完成验证过程来获得授权码。该授权码将在后续作为密码参数参与邮件发送流程[^5]。 #### 添加必要的库文件支持 项目中应加入`javax.mail`的相关依赖项以处理邮件协议通信逻辑。如果遇到缺少特定类定义错误(如`ClassNotFoundException: com.sun.mail.util.MailLogger`),则表明还需要额外引入`com.sun.mail`组件的支持[^4]。对于Maven工程而言,可以在pom.xml里添加如下依赖: ```xml <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.6.2</version> </dependency> ``` #### 编写邮件发送功能代码 下面给出一段基于上述准备工作的简单示例代码片段,展示了怎样利用Hutool工具箱下的`MailUtil`方法快速构建一封简单的纯文本形式的邮件消息体,并调用指定的服务接口执行实际投递动作[^3]。 ```java import cn.hutool.core.util.StrUtil; import cn.hutool.extra.mail.MailAccount; import cn.hutool.extra.mail.MailUtil; public class EmailSender { private static final String SMTP_SERVER = "smtp.qq.com"; public void sendSimpleEmail(String recipient, String title, String content){ MailAccount account = new MailAccount(); account.setHost(SMTP_SERVER); account.setPort(465); // QQ邮箱SSL端口 account.setAuth(true); account.setFrom("sender@qq.com"); // 发件人的地址 account.setUser("sender@qq.com"); account.setPass("your_authorization_code_here"); // 授权码 boolean result = MailUtil.send(account,recipient,title,content,true); System.out.println(StrUtil.format("邮件发送状态:{} -> {}",result ? "成功":"失败",recipient)); } } ``` 请注意替换模板内的占位符为真实的发信者电子信箱以及之前取得过的授权密钥字符串值。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值