您当前的位置: 首页 > 

梁云亮

暂无认证

  • 1浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

commons-email 包工具类用法

梁云亮 发布时间:2022-05-11 22:39:30 ,浏览量:1

Maven依赖

    com.sun.mail
    javax.mail
    1.6.2


    org.apache.commons
    commons-email
    1.5

测试代码
import java.net.MalformedURLException;
import java.net.URL;

import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.ImageHtmlEmail;
import org.apache.commons.mail.MultiPartEmail;
import org.apache.commons.mail.SimpleEmail;
import org.apache.commons.mail.resolver.DataSourceUrlResolver;
import org.junit.jupiter.api.Test;

/**
 * 使用Commons-Email发送邮件
 */
public class CommonsEmailTest {
    /**
     * 发送内容为简单文本的邮件
     */
    @Test
    public void testSimpleEmail() throws Exception {
        // 发送简单的email,不能添加附件
        SimpleEmail email = new SimpleEmail();
        //QQ使用的是smtp服务器,需要身份验证
        // 邮件服务器域名
        email.setHostName("smtp.qq.com");
        // 邮件服务器smtp协议的SSL端口
        //POP3服务器(端口995)
        //SMTP服务器(端口465或587)
        email.setSmtpPort(465);
        //验证信息(发送的邮箱地址与密码) 注:这里的密码是授权码
        email.setAuthenticator(new DefaultAuthenticator("369950806@qq.com", "XXXXXXXXXXXXXXXX"));
        // 是否启用SSL
        email.setSSLOnConnect(true);
        // 设置字符编码方式
        email.setCharset("UTF-8");
        // 发件人
        email.setFrom("369950806@qq.com");
        // 收件人
        email.addTo("369950806@qq.com");
        //发送给多人
//     email.addTo(String... emails);
        // 抄送
//     email.addCc("xxx");
        // 密送
//     email.addBcc("xxx");
        //邮件的标题
        email.setSubject("第一封简单邮件");
        //邮件的内容
        email.setMsg("简单的邮件来了哦!!!");
        //发送
        email.send();
    }

    /**
     * 发送包含附件的邮件(附件为本地资源)
     */
    @Test
    public void sendEmailsWithAttachments() throws EmailException {
        // 附件类
        EmailAttachment attachment = new EmailAttachment();
        // 本地路径
        attachment.setPath("E:\\图片\\cxy.jpg");
        // 定义附件
        attachment.setDisposition(EmailAttachment.ATTACHMENT);
        // 附件描述
        attachment.setDescription("kind man");
        // 附件名(为中文时要处理编码)
        attachment.setName("hecai.jpg");

        //创建email对象(MultiPartEmail可以操作附件)
        MultiPartEmail email = new MultiPartEmail();

        // 邮件服务器域名
        email.setHostName("smtp.qq.com");
        // 邮件服务器smtp协议的SSL端口
        email.setSmtpPort(465);
        //验证信息(发送的邮箱地址与密码) 注:这里的密码是授权码
        email.setAuthenticator(new DefaultAuthenticator("369950806@qq.com", "XXXXXXXXXXXXXXXX"));
        // 是否启用SSL
        email.setSSLOnConnect(true);
        // 设置字符编码方式
        email.setCharset("UTF-8");

        email.setFrom("369950806@qq.com");
        email.addTo("369950806@qq.com");

        email.setSubject("这是一张图片");
        email.setMsg("我发了一张图片给你");
        email.attach(attachment);

        email.send();
    }

    /**
     * 发送包含附件的邮件(附件为在线资源)
     * 在发送时自动将网络上资源下载发送
     */
    @Test
    public void sendEmailsWithOnlineAttachments() throws EmailException, MalformedURLException {
        EmailAttachment attachment = new EmailAttachment();
        attachment.setURL(new URL("https://profile-avatar.csdnimg.cn/46cf5380bece4b3580eab60bca10a784_lianghecai52171314.jpg"));
        attachment.setDisposition(EmailAttachment.ATTACHMENT);
        attachment.setDescription("csdn hc");
        attachment.setName("hecai.jpg");

        MultiPartEmail email = new MultiPartEmail();
        // 邮件服务器域名
        email.setHostName("smtp.qq.com");
        // 邮件服务器smtp协议的SSL端口
        email.setSmtpPort(465);
        //验证信息(发送的邮箱地址与密码) 注:这里的密码是授权码
        email.setAuthenticator(new DefaultAuthenticator("369950806@qq.com", "XXXXXXXXXXXXXXXX"));
        // 是否启用SSL
        email.setSSLOnConnect(true);
        // 设置字符编码方式
        email.setCharset("UTF-8");

        email.setFrom("369950806@qq.com");
        email.addTo("369950806@qq.com");

        email.setSubject("这是一张图片");
        email.setMsg("我发了一张图片给你");
        email.attach(attachment);

        email.send();
    }

    /**
     * 发送内容为HTML格式的邮件,内嵌图片
     */
    @Test
    public void sendHTMLFormattedEmail() throws EmailException, MalformedURLException {
        // HTML格式邮件,同时具有MultiPartEmail类所有“功能”
        HtmlEmail email = new HtmlEmail();

        // 邮件服务器域名
        email.setHostName("smtp.qq.com");
        // 邮件服务器smtp协议的SSL端口
        email.setSmtpPort(465);
        //验证信息(发送的邮箱地址与密码) 注:这里的密码是授权码
        email.setAuthenticator(new DefaultAuthenticator("369950806@qq.com", "XXXXXXXXXXXXXXXX"));
        // 是否启用SSL
        email.setSSLOnConnect(true);
        // 设置字符编码方式
        email.setCharset("UTF-8");

        email.setFrom("369950806@qq.com");
        email.addTo("369950806@qq.com");

        email.setSubject("测试邮件");

        // 图片的网络地址
        URL url = new URL("https://profile-avatar.csdnimg.cn/46cf5380bece4b3580eab60bca10a784_lianghecai52171314.jpg");
        String cid = email.embed(url, "云亮");

        // 将图片引入html标签
        email.setHtmlMsg("梁云亮 ");

        email.send();
    }

    /**
     * 发送内容为HTML格式的邮件,内嵌图片
     */
    @Test
    public void sendHTMLFormattedEmailWithEmbeddedImages() throws MalformedURLException, EmailException {
        // ImageHtmlEmail类通常是用来发送Html格式并内嵌图片的邮件,它拥有所有HtmlEmail的功能,但是图片主要是以html内嵌的为主
        ImageHtmlEmail email = new ImageHtmlEmail();

        // 邮件服务器域名
        email.setHostName("smtp.qq.com");
        // 邮件服务器smtp协议的SSL端口
        email.setSmtpPort(465);
        //验证信息(发送的邮箱地址与密码) 注:这里的密码是授权码
        email.setAuthenticator(new DefaultAuthenticator("369950806@qq.com", "XXXXXXXXXXXXXXXX"));
        // 是否启用SSL
        email.setSSLOnConnect(true);
        // 设置字符编码方式
        email.setCharset("UTF-8");

        email.setFrom("369950806@qq.com");
        email.addTo("369950806@qq.com");

        email.setSubject("测试邮件");


        URL url = new URL("https://hcshow.blog.csdn.net/");
        // 这样HTML内容里如果有此路径下的图片会直接内联
        email.setDataSourceResolver(new DataSourceUrlResolver(url));
        String htmlEmail = "这里一个认真负责任的人!";
        email.setHtmlMsg(htmlEmail);

        email.send();
    }
}
关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0437s