java实现qq发邮件

一、Maven引入依赖包

<!-- 邮件 -->
        <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-email -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-email</artifactId>
            <version>1.5</version>
        </dependency>

二、创建邮件信息实体类

邮件信息实体类包含标题、内容、收件人属性,可根据自己的具体需求,增加或调整,参数满足后面的邮件发送接口调用的参数即可。

public class EmailInfo {
    /**
     * 邮件标题
     */
    private String title;
    /**
     * 邮件内容
     */
    private String content;
    /**
     * 收件人
     */
    private List<String> receivers = new ArrayList<String>();

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public List<String> getReceivers() {
        return receivers;
    }

    public void setReceivers(List<String> receivers) {
        this.receivers = receivers;
    }
}

三、封装邮件发送接口

将邮件发送的api封装一下,调用该接口,传递邮件信息实体对象,即可发送邮件

public class Mailer {
    // 发件人邮箱的 SMTP 服务器地址, 必须准确, 不同邮件服务器地址不同, 一般(只是一般, 绝非绝对)格式为: smtp.xxx.com
    private static String mailserver = "smtp.qq.com"; // qq邮箱的 SMTP 服务器地址为: smtp.qq.com
    private static String sender = "1242xxxx@qq.com"; // 发件人
    private static int smtpPort = 587;
    // smtp服务器的认证资料
    private static String username = "1242xxxx@qq.com"; // 发件人邮箱账号
    // 发件人邮箱的授权码(qq邮箱用第三方发邮件需要在邮箱里开启smtp服务并获取授权码)
    private static String password = "frcbjkddomxxxx";
    //是否初始化
    private static boolean isInited = false;
    private static boolean isUse = true;

    public static int sendMail(EmailInfo info) {
        if (!isInited) {
            isInited = true;
        }
        if (!isUse) {
            System.err.println("邮箱设置不启用");
            return 1;
        }
        HtmlEmail email = new HtmlEmail();
        // 通过Gmail Server 发送邮件
        email.setHostName(mailserver);
        email.setSmtpPort(smtpPort);
        //设定smtp服务器的认证资料信息
        email.setAuthentication(username, password);
        email.setStartTLSEnabled(false);
        email.setSSLOnConnect(false);
        try {
            email.setFrom(sender); // 设定发件人
            email.addTo(info.getReceivers().toArray(new String[info.getReceivers().size()])); // 设定收件人
            email.setCharset("UTF-8"); // 设定内容的语言集
            email.setDebug(true);
            email.setSubject(info.getTitle()); // 设定主题
            email.setHtmlMsg(info.getContent()); // 设定邮件内容
            email.send();// 发送邮件

        } catch (EmailException e) {
            e.printStackTrace();
            return 1;
        }
        return 0;
    }
}

四、调用邮件发送接口

调用邮件发送接口,传入参数,即可发送邮件。

@RestController
public class MailSendController {

    @RequestMapping("/mailSend")
    public String mailSend(){
        EmailInfo emailInfo = new EmailInfo();
        emailInfo.setTitle("邮件标题");
        emailInfo.setContent("尊敬的用户您好!\r\n <br />"+"邮件内容");
        emailInfo.getReceivers().add("342817xxxx@qq.com");
        Mailer.sendMail(emailInfo);
        return "发送成功";
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值