使用帮助

两行代码即可发送邮件

java 发送群发邮件 java批量发送邮件_spring

java 发送群发邮件 java批量发送邮件_客户端_02

java 发送群发邮件 java批量发送邮件_java 发送群发邮件_03

java 发送群发邮件 java批量发送邮件_java 发送群发邮件_04

特点优势

极简邮件发送:两行代码发送邮件

高效:保证使用简单的同时,重视效率,在你不需要关注源码的情况下,自动选择最好的方式

Spring:基于Spring-Mail,完全支持Spring,又可以脱离Spring使用

高送达率:默认双发送器,失败重发,尽可能保证送达到目的地

版本更新

版本号

关键词

更新时间

主要更新内容

1.0.0

RELEASE

2019年2月22日

RELEASE版发布,功能测试稳定

1.0.1

单例模式

2019年3月16日

目录1.1,默认使用单例模式,在使用方式不变的情况下,提高了响应速度

1.0.2

抄送

2019年5月18日

抄送自动切换,使用方式不变

1.快速开始(5分钟上手使用)

在这里,你可以快速完成邮件的发送,只需要一点点必须的设置

熟悉项目结构:这是一个maven工程,如果你不会使用maven,可以使用1.Jar包的方式

一个示例:

只需要这四行代码,即可完整地发送一封邮件。

@Test
public void testSendSimple() throws MailAddressException {
MimeMail mimeMail = MimeMail.Builder.initMailSender("smtp.163.com", "smtp",465, "hongshuboy@163.com","你的客户端授权码", false);
List to = new ArrayList();// 收件人集合
mimeMail.sendMail(to, "你有新的消息", "请到网站内查看"+new Date());
}

1.1 必需的设置,开启邮箱的POP3/SMTP/IMAP

通过客户端(代码)发送邮件,必须到邮箱中打开这项设置,并且获取到客户端授权码(理解为密码),因为账号的密码是不能用的,需要用它代替密码。

详细设置过程不难,请自行搜索,搜索关键词如:163邮箱如何开启POP3/SMTP/IMAP服务。

1.2 下载依赖Jar包

点此下载Jar包或者将本项目使用Maven打包

注意: 如果你不使用Spring容器,那么你需要 额外 将/dependencies下的所有Jar包添加到项目中

1.3 Add to Build Path

复制刚刚下载好的几个jar包到你的项目(lib目录)下,右键选择build path ->Add to Build Path

1.4 开始发送

这是最简单的方式

这样只需要在需要的时候用初始化的MimeMail send方法发送邮件即可

**注意:**这种方式只能添加一种发送器。相比方法2,这种的稳定性稍差。

1.0.1版本更新后,此方式默认使用单例模式加载,在使用方式不变的情况下,提高了响应速度

/**
* 下面是一个简单的例子,测试发送。这是最简单的方式
* @throws IOException
* @throws MailAddressException 自定义异常,邮件地址不正确
*/
@Test
public void testSendSimple() throws MailAddressException {
MimeMail mimeMail = MimeMail.Builder.initMailSender("smtp.163.com", "smtp",465, "youremailname@163.com","你的客户端授权码", false);
List to = new ArrayList();// 收件人集合
mimeMail.sendMail(to, "你有新的消息", "请到网站内查看"+new Date());
}

1.5 补充

之后,如果你在系统中再次需要获取MimeMail对象,只需要再次调用MimeMail.Builder.initMailSender方法,这样会使用单例模式直接拿到第一次初始化的对象,也就是说从第二次使用开始,都会直接获取第一次的MimeMail对象,而不会重新创建。之后的调用,参数填错也不要紧。

第二次调用示例:

MimeMail mail2 = MimeMail.Builder.initMailSender("hello", "world", 100, "a", "b",true);//这里参数可以随便填了

System.out.println(mail == mail2);//这里会输出true,因为直接拿了上一次的对象

如果163邮箱报554 DT:SPM异常,意思是识别到你发的是垃圾邮件,其他异常请参考下面的文档

2. 高效初始化方式

2.1 设置发件箱的域名和密码

如果你不想使用配置文件,只想使用编码方式快速开始,可以略过这一部分,确保开启你的邮箱的POP3/SMTP/IMAP之后,直接看下面的1.1不使用properties(最简单的方式)或1.2使用properties

src\main\resources\mail.properties

1. 参照现有的配置,修改这个文件,填入你的发件箱,建议你163和QQ邮箱都配置上,这样,如果发送失败,程序会自动切换发送器重发,保证成功率,而且切换过程用户没有察觉。

2. 如果你只配置了一个发送器,无需修改代码,系统会只用这一个发送器进行发送(但是需要删除一个spring配置,注意下文A部分)。

开启邮箱的POP3/SMTP/IMAP

要使用java mail,请先在邮箱设置中开启POP3/SMTP/IMAP,配置的密码不是你的登录密码,以163邮箱为例,同样在设置中选择客户端授权密码,获取一份授权密码,放在配置文件 (src\main\resources\mail.properties) 的mail.password位置。

A:如果你只在其中配置了一个邮箱

只想用一个发送器?那请把 src\main\resources\spring-mailx.xml文件中不用的发送器删除,注意删除整个标签

强烈建议你两个都配置,这样系统在其中一个发送失败时会切换发送器重新发送,点击查看163发送失败的代号对应的原因

2.2 简单的配置之后终于可以开始测试了

可以使用两种方式快速上手使用

使用Spring容器初始化

这种方式也简单易用,速度上也比上种有显著提升

使用git clone项目到本地

修改src\main\resources下的mail.properties(配置等号上面的内容)(如果你只需要一个发送器,可以只配置一个,并且必须执行第三步)

(可选)修改src\main\resources下的spring-mailx.xml(如果你在2中只配置了一个发送器,这里需要删除多余的那个)

(可选)如果你需要发送附件或者在邮件中显示图片,请将附件或者图片放在src\main\resources下,并且修改top\weweb\hawk\mailx\MimeMail.sendMail(List to,String subject,String Text,boolean retry)对应部分的源码(注释的很清楚)

[直接导入项目,使用Maven关联这个项目为依赖] 或者 [使用Maven重新打包项目(请跳过Maven Test,或者删除src\test下的java文件,否则报错)并将Jar导入]

在工程的spring.xml中import中导入simple mail内的spring-mailx.xml配置文件,这样当前项目就可以使用MimeMail发送邮件了,在需要用的地方使用@Autowired注入就可以使用了。请看下面的演示。

步骤6中在上层项目的spring.xml中导Mail组件的Spring容器的方法

请直接复制结点,除非必要不要更改

...

易错注意 :

如果使用上层容器,两个容器内不要同时有,将这个结点放到顶层spring.xml中

如果你觉得对你有帮助,就点个star吧~

有问题或者建议欢迎在此页留言或者向我发送邮件,一起改进

问题反馈

java 发送群发邮件 java批量发送邮件_spring