Advertisement

Commons Email-电子邮件发送

阅读量:
  • 资源链接
  • Commons Email简介
  • Commons Email 的配置
  • Commons Email 的用法
    • 开通POP3SMTP服务

    • 发送电子邮件源码

      • Mail源码
      • MailAction源码
      • 测试代码MailTest源码
    • 测试的结果

资源链接

Commons Email 官网地址

Commons Email API 文档

码云上的项目源码

Commons Email简介

公用电子邮件的目标是提供一个发送电子邮件的API。它是建立在Java邮件API之上的,它的目标是简化。

  • SimpleEmail - 这个类用于发送基本的基于文本的电子邮件。

  • MultiPartEmail - 该类用于发送多部分消息。这允许带有附件的文本消息或附件或附件。

  • HtmlEmail - 这个类用于发送HTML格式的电子邮件。它具有作为多部分电子邮件的所有功能,可以方便地添加附件。它还支持嵌入的图像。

  • ImageHtmlEmail - 这个类用于发送带有内联图像的HTML格式的电子邮件。它具有HtmlEmail的所有功能,但是将所有的图像引用转换为内联图像。

  • EmailAttachment - 这是一个简单的容器类,可以方便地处理附件。它适用于多部分电子邮件和HtmlEmail的实例。

Commons Email 的配置

这个的基础配置很简单,就一个Maven依赖项,如下:

复制代码
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-email</artifactId>
      <version>1.5</version>
    </dependency>

Commons Email 的用法

开通POP3/SMTP服务

在使用该Maven依赖发送电子邮件之前,我们先确保发送的电子邮件提供方已经开通了“POP3/SMTP服务”,如果没有开通的话可以参考下面的方法。

我这里是以网易邮箱为例来进行的说明。

首先是登录电子邮箱首页,如下:
这里写图片描述

找到图示的【设置】按钮,点击后在弹出的下拉列表框中选择“POP3/SMTP/IMAP”选项。
这里写图片描述

在弹出的页面中,选中“ POP3/SMTP服务”复选框,点击图示的【保存】按钮即可。
这里写图片描述

发送电子邮件源码

Mail源码:

复制代码
    package com.lyc.email;
    
    import lombok.*;
    
    import java.util.Set;
    
    @Getter
    @Setter
    @Builder
    public class Mail {
    
    private String subject;
    
    private String message;
    
    private Set<String> receivers;
    }

MailAction源码:

复制代码
    package com.lyc.email;
    
    import lombok.extern.slf4j.Slf4j;
    import org.apache.commons.lang3.StringUtils;
    import org.apache.commons.mail.EmailException;
    import org.apache.commons.mail.HtmlEmail;
    
    @Slf4j
    public class MailAction {
    
    public static boolean send(Mail mail) {
        //发送方电子邮件地址
        String from = "zhangzhenyihi@163.com";
        //发送的端口号
        int port = 25;
        //发送的主机地址(需要开通pop3服务)
        String host = "smtp.163.com";
        //发送方电子邮件密码
        String pass = "password";
        //发送方昵称
        String nickname = "zhangzhenyi";
    
        HtmlEmail email = new HtmlEmail();
        try {
            email.setHostName(host);
            email.setCharset("UTF-8");
            for (String str : mail.getReceivers()) {
                email.addTo(str);
            }
            email.setFrom(from, nickname);
            email.setSmtpPort(port);
            email.setAuthentication(from, pass);
            email.setSubject(mail.getSubject());
            email.setMsg(mail.getMessage());
            email.send();
            log.info("{} 发送邮件到 {}", from, StringUtils.join(mail.getReceivers(), ","));
            return true;
        } catch (EmailException e) {
            log.error(from + "发送邮件到" + StringUtils.join(mail.getReceivers(), ",") + "失败", e);
            return false;
        }
    }
    
    }

测试代码MailTest源码:

复制代码
    package com.lyc.mail;
    
    import com.lyc.email.Mail;
    import com.lyc.email.MailAction;
    import org.junit.Assert;
    import org.junit.Test;
    
    import java.util.HashSet;
    import java.util.Set;
    
    public class MailTest {
    
    @Test
    public void test(){
        //添加接收者电子邮件地址
        Set<String> receivers = new HashSet<String>();
        receivers.add("1078689276@qq.com");
        Mail mail = Mail.builder()
                .subject("异常信息标题")   //发送的电子邮件标题
                .message("异常信息内容")   //发送的电子邮件内容
                .receivers(receivers).build();
        //断言发送的电子邮件是否成功
        Assert.assertEquals(true,MailAction.send(mail));
    }
    
    }

测试的结果:

这里写图片描述

全部评论 (0)

还没有任何评论哟~