mail-micro-service
是基于SpringBoot、JavaMail实现的邮件微服务系统,支持以轮询、加权轮询方式负载多邮箱配置,提供邮件发送API。
由于免费邮箱存在邮件发送数量和频率的上限,若发送频繁,可能会被邮件服务商判定为垃圾邮件(554 DT:SPM),因此采用多个免费邮箱轮询发送。
- JDK1.8+
- Maven3.0+
# 轮询方式:normal(轮询)、weighted(加权轮询)
mail.roundrobin.type=weighted
# 附件临时目录,linux下需要修改路径
file.folder=D://maindisk/temp
# 邮箱host,这里以163为例
mail.smtp.host=smtp.163.com
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
# 某些云服务商因安全问题,不允许通过stmp 25端口发送邮件,因此使用465端口,采用SSL协议加密传输邮件
mail.smtp.socketFactory.port=465
# 进行身份验证
mail.smtp.auth=true
# 账号
mail.username=XXXX
# 授权码
mail.password=XXXX
# 标识
mail.id=mail0
# 启用标志
mail.isAvailable=true
# 加权轮询权重
mail.weight=2
# debug模式
mail.debug=false
系统会优先读取jar包同级目录的配置文件(自定义的mailX.properties也是),若没找到则会使用classpath下配置,推荐使用外部配置文件部署。
安装JDK,配置Maven环境,Clone代码,配置邮箱账号授权码,编译打包工程,运行jar包。
mvn clean install -Dmaven.test.skip=true
java -jar target/mail-micro-service.jar
推送授权码并非邮箱密码,163/126邮箱获取方式请点我查看 ,QQ邮箱请点我查看,邮箱必须开启POP3/SMTP服务。
发送无附件邮件 POST http://127.0.0.1:12345/api/v0.0.1/mail/send?to=xxxxx@qq.com&title=我是没有附件的主题&content=我是没有附件的内容
多收件人,请使用;分隔收件人邮箱,更多使用详情见MailLocalhostTest.java
- v0.0.1 以轮询、加权轮询方式负载多邮箱配置,提供邮件发送API
- v0.0.2 记录邮件发送日志,并提供查询页面
- v0.0.3 添加Dockerfile
配置日志切面,使用h2database存储发送日志,默认开启h2 console,可查看数据库信息,数据文件存储于同级目录/h2/mms下,可修改使用h2内存模式或者其他数据库配置,http://127.0.0.1:12345/api/v0.0.1/h2-console/
提供发送记录查询页面,可查看历史发送记录,http://127.0.0.1:12345/api/v0.0.1/
添加Dockerfile,提供Docker部署方案。
手动拉取代码安装。
git clone https://github.com/hf-hf/mail-micro-service.git
cd mail-micro-service
./docker/docker-build.sh
./docker/docker-run.sh
快捷安装,拷贝Dockerfile-full,重名为Dockerfile。
docker build -t mail-micro-service ./
docker run --name mail-micro-service -e JVMXMX=1G -v /app/app-log:/app/app-log -v /app/h2:/app/h2 -p 12345:12345 -d mail-micro-service
若要使用外部配置文件,请将配置文件放置在Dockerfile同级目录的config文件夹下,并放开Dockerfile中的注释行。