java springboot+maven发送邮件
springboot+maven发送邮件
废话不多说直接上代码
1. pom 文件导入jar包
<!--邮件发送-->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
2. 邮件方法 我用的是163 邮箱发送
/**
* 项目文件根路径
* @return
*/
public static String rootPath() { return System.getProperty("user.dir");
}}
// 发送邮件
public static Boolean sendEmail() {
final Properties props = new Properties();
//登入邮箱服务器是需要验证的
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", "smtp.163.com");
props.put("mail.smtp.port", 25);
//设置协议
props.put("mail.transport.protocol", "smtp");
// 发件人的账号
props.put("mail.user", "ddddddddd@163.com");
// 访问SMTP服务时需要提供的密码 非常重要 不是你登
陆邮箱的密码 是需要到163 邮箱设置的SMTP的密码
props.put("mail.password", "mima");
// 构建授权信息,用于进行SMTP进行身份验证
Authenticator authenticator = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
// 用户名、密码
String userName = props.getProperty("mail.user");
String password = props.getProperty("mail.password");
return new PasswordAuthentication(userName, password);
}
};
// 使用环境属性和授权信息,创建邮件会话
Session mailSession = Session.getInstance(props, authenticator);
// mailSession.setDebug(true);
// 创建邮件消息
MimeMessage message = new MimeMessage(mailSession);
try {
String nick = "";
nick = javax.mail.internet.MimeUtility.encodeText("title");
// 设置发件人
InternetAddress from = new InternetAddress(nick + " <"+
props.getProperty("mail.user") + ">");
message.setFrom(from);
Address[] a = new Address[1];
// 接收方回复的邮件地址
a[0] = new InternetAddress("eeeeeee@qq.com");
message.setReplyTo(a);
// 设置收件人
InternetAddress to = new InternetAddress("shoujianren@qq.com");
message.setRecipient(MimeMessage.RecipientType.TO, to);
// 设置邮件标题
message.setSubject("mailtitle"); //添加附件部分
//邮件内容部分1---文本内容
MimeBodyPart body0 = new MimeBodyPart(); //邮件中的文字部分
body0.setContent("<p>啦啦啦啦</p>","text/html;charset=utf-8"); //邮件内容部分2---附件1
MimeBodyPart body1 = new MimeBodyPart(); //附件1
body1.setDataHandler( new DataHandler( new FileDataSource
(UlegalZCUtil.rootPath() +
File.separator + "pdf" + File.separator + "templateOL" + ".pdf")) )
;//./代表项目根目录下 body1.setFileName( MimeUtility.encodeText("拉拉.pdf")
);//中文附件名,解决乱码 //把上面的3部分组装在一起,设置到msg中
MimeMultipart mm = new MimeMultipart();
mm.addBodyPart(body0);
mm.addBodyPart(body1);
message.setContent(mm); // 设置邮件的内容体
// message.setContent("题在我使用postman来上传图片时候
,死活都没过。。显示这个,问题在哪呢?",
"text/html;charset=UTF-8");
// 发送邮件
Transport.send(message);
}
catch (Exception e) {
String err = e.getMessage();
// 在这里处理message内容, 格式是固定的
System.out.println("====:"+err);
return false;
}
return true;
}
3. 如果是qq邮箱的话需要在上面的配置添加ssl加密
//开启了 SSL 加密
//开启安全协议
MailSSLSocketFactory sf = null;
try {
sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
} catch (GeneralSecurityException e1) {
e1.printStackTrace();
}
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.socketFactory", sf);
4. 经过的我的实验如果将项目部署到阿里云服务器,以163邮箱 为基准发送邮件
的话是不能成功的,以为163邮箱是25端口与阿里冲突,
后期我以qq邮箱为基准发送邮件,但是163邮箱接收不到邮件,目前还没有找到解决办法
我的想法是采用阿里云邮箱,应该没有问题。。。
注意 密码不是邮箱的登陆密码
java springboot+maven发送邮件的更多相关文章
- springboot+kotlin+springcloud+java+grade+maven混编?
springboot + maven + java vs springboot + gradle + kotlin 快速搭建:https://start.spring.io/ springclould ...
- 使用 SpringBoot 配置发送邮件功能
1.使用 SpringBoot 配置发送邮件功能 项目总体结构 用户表设计 SET FOREIGN_KEY_CHECKS=0; CREATE DATABASE sample; USE sample; ...
- java~springboot~目录索引
回到占占推荐博客索引 最近写了不过关于java,spring,微服务的相关文章,今天把它整理一下,方便大家学习与参考. java~springboot~目录索引 Java~关于开发工具和包包 Java ...
- springboot+maven整合spring security
springboot+maven整合spring security已经做了两次了,然而还是不太熟悉,这里针对后台简单记录一下需要做哪些事情,具体的步骤怎么操作网上都有,不再赘述.1.pom.xml中添 ...
- java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况
java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况 邮件短信微服务 spring boot 微服务 接收json格式参数 验证参数合 ...
- 【Other】最近在研究的, Java/Springboot/RPC/JPA等
我的Springboot框架,欢迎关注: https://github.com/junneyang/common-web-starter Dubbo-大波-服务化框架 dubbo_百度搜索 Dubbo ...
- 转 使用Docker部署 spring-boot maven应用
转自:https://blog.csdn.net/u011699931/article/details/70226504/ 使用Docker部署 spring-boot maven应用 部署过程分为以 ...
- java springboot整合zookeeper入门教程(增删改查)
java springboot整合zookeeper增删改查入门教程 zookeeper的安装与集群搭建参考:https://www.cnblogs.com/zwcry/p/10272506.html ...
- java springboot调用第三方接口 借助hutoool工具类 爬坑
楼主是个后端小白一枚,之前没接触过后端,只学了java基本语法,还是在学校老师教的,学的很浅,什么ssh.ssm框架都没有学,最近在自学spring boot,看书学也看不是很懂,就在b站上看教学视频 ...
随机推荐
- [/usr/local/openssl//.openssl/include/openssl/ssl.h] Error 127
/bin/sh: line 2: ./config: No such file or directorymake[1]: *** [/usr/local/ssl/.openssl/include/op ...
- [C++] STL相关面试题
(1) 为何map和set的插入删除效率比用其他序列容器高? 因为map和set的内部数据结构是红黑树,它的插入和删除不需做内存的拷贝和移动.(红黑树的插入和删除是log(n)的). (2) 为何每次 ...
- react-native 打包 出apk
先上步骤: 一. 生成签名文件(my-release-key.keystore文件) Android要求所有应用都有一个数字签名才会被允许安装在用户手机上 1. 在项目目录下运行如下命令: keyt ...
- java替换特殊字符串
开始想到String.replaceFirst(regex, replacement)和String.replaceAll(regex, replacement); 但特殊字符没替换成功. 用法:St ...
- Common issue on financial information exchange (FIX) Connectivity[z]
FIX Protocol Session Connectivity Hi guys, in this post I would like share my experience with financ ...
- ros kinect calibration
RGB camera Bring up the OpenNI driver: roslaunch openni_launch openni.launch Now follow the standard ...
- I-Keyboard
SPOJ Problem Set (classical) 14. I-Keyboard Problem code: IKEYB Most of you have probably tried to t ...
- [转]Clean up after Visual Studio
本文转自:https://weblogs.asp.net/psheriff/clean-up-after-visual-studio As programmer’s we know that if w ...
- windows下C++操作MySQL数据库
.安装MySQL 2.建立C++控制台程序,新建CPP源文件,如:sqlconn.cpp 3.工程项目中属性—C/C++--常规—附加包含目录中添加mysql安装目录中的MySQL\MySQL\MyS ...
- HDU 5974 A Simple Math Problem(数论+结论)
Problem Description Given two positive integers a and b,find suitable X and Y to meet the conditions ...