java发送邮件&&使用HtmlEmail发送邮件

java原生发送qq邮箱

首先要有QQ邮箱的授权码,如果有就直接看代码。
1.登录QQ邮箱,找到设置
在这里插入图片描述
2.选择账户选项,往下找到IMAP服务。
在这里插入图片描述
3.开启服务获得授权码,或已经开启缺不知道,可以重新生成授权码。
在这里插入图片描述

public static void main(String[] args) throws AddressException,MessagingException {
        Properties properties = new Properties();
        properties.put("mail.transport.protocol", "smtp");// 连接协议
        properties.put("mail.smtp.host", "smtp.qq.com");// 主机名
        properties.put("mail.smtp.port", 465);// 端口号
        properties.put("mail.smtp.auth", "true");
        properties.put("mail.smtp.ssl.enable", "true");// 设置是否使用ssl安全连接 ---一般都使用
        properties.put("mail.debug", "true");// 设置是否显示debug信息 true 会在控制台显示相关信息
        // 得到回话对象
        Session session = Session.getInstance(properties);
        // 获取邮件对象
        Message message = new MimeMessage(session);
        // 设置发件人邮箱地址xxx
        message.setFrom(new InternetAddress("xxx@qq.com"));
        // 设置多个收件人邮箱地址或一个收件人
        // message.setRecipients(Message.RecipientType.TO, new InternetAddress[]{new InternetAddress("xxx@qq.com"),new InternetAddress("xxx@qq.com"),new InternetAddress("xxx@qq.com")});
        message.setRecipient(Message.RecipientType.TO, new InternetAddress("xxx@qq.com"));//一个收件人
        // 设置邮件标题
        message.setSubject("标题");
        // 设置邮件内容
        message.setText("这是一个QQ邮件");
        // 得到邮差对象
        Transport transport = session.getTransport();
        // 连接自己的邮箱账户,QQ邮箱授权码在QQ邮箱中激活使用
        transport.connect("xxx@qq.com", "QQ邮箱授权码");// 密码为QQ邮箱开通的stmp服务后得到的客户端授权码
        // 发送邮件
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();
    }

如果我们想以HTML格式发送邮件,可以使用HtmlEmail来实现**

1.首先定义一个信封类

public class Envelope implements Serializable {
    //收件地址
    private String to;
    //邮件头
    private String subject;
    //邮件内容
    private Map<String, Object> cry;

    public Envelope(String to, String subject, Map<String, Object> cry) {
        this.to = to;
        this.subject = subject;
        this.cry = cry;
    }

    public String getTo() {
        return to;
    }

    public void setTo(String to) {
        this.to = to;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public Map<String, Object> getCry() {
        return cry;
    }

    public void setCry(Map<String, Object> cry) {
        this.cry = cry;
    }
}

2.定义发送邮件方法

public static void send2(final Envelope envelope) throws EmailException {
        //创建一个HtmlEmail对象
        HtmlEmail email = new HtmlEmail();
        //设置主机名
        email.setHostName("smtp.qq.com");
        //设置收件人
        email.addTo(envelope.getTo());
        //设置发送用户邮箱和邮件名称
        email.setFrom("xxx@qq.com", envelope.getSubject());
        //连接发送邮箱
        email.setAuthentication("xxx@qq.com", "QQ邮箱授权码");
        //邮件编码格式
        email.setCharset("UTF-8");
        //设置邮件头部
        email.setSubject(envelope.getSubject());
        //设置邮件内容,识别HTML标签
        email.setHtmlMsg("<div style=\"background-color: red\">邮件内容</div>");
        email.send();
    }

测试一下,看到结果。

@Test
    public void testEmail()throws Exception{
        Envelope envelope = new Envelope("2731554393@qq.com","邮件测试",new HashMap<>());
        EmailUtils.send2(envelope);
    }

在这里插入图片描述

  • 2
    点赞
  • 0
    评论
  • 7
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页

打赏

龙王啊

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值