Comments (2)
我搜了几篇文章:
使用Gmail的Oauth2:https://kgiann78.github.io/java/gmail/2017/03/16/JavaMail-send-mail-at-Google-with-XOAUTH2/
使用Outlook的Oauth2:https://medium.com/@tempmailwithpassword/sending-emails-with-java-using-oauth2-and-office-365-b164d54f68fc
事实上,换成Oauth2登录后,你需要使用token方式而不是密码方式,但是微软的token生成貌似比较麻烦,你需要新建应用,然后借助MSAL4J
这个库生成token。
ConfidentialClientApplication app = ConfidentialClientApplication.builder("your-application-id", ClientCredentialFactory.createFromSecret("your-client-secret")) .authority("https://login.microsoftonline.com/your-tenant-id") .build();
IClientCredential credential = ClientCredentialFactory.createFromSecret("your-client-secret");
SilentParameters silentParameters = SilentParameters.builder(Collections.singleton("Mail.Send")) .build();
IAuthenticationResult result = app.acquireTokenSilently(silentParameters).join();
String accessToken = result.accessToken();
然后使用Hutool:
final MailAccount mailAccount = new MailAccount();
mailAccount.setHost("smtp.office365.com");
mailAccount.setPort(587);
mailAccount.setFrom("[email protected]");
mailAccount.setUser("xxxx");
// 这里使用生成的token
mailAccount.setPass("token".toCharArray());
mailAccount.setAuth(true);
mailAccount.setStarttlsEnable(true);
// 这里关掉SSL
mailAccount.setSslEnable(false);
// 使用XOAUTH2
mailAccount.setCustomProperty("mail.smtp.auth.mechanisms", "XOAUTH2");
mailAccount.setCustomProperty("mail.smtp.auth.login.disable", "true");
mailAccount.setCustomProperty("mail.smtp.auth.plain.disable", "true");
final String id = Mail.of(mailAccount)
.setTos("[email protected]")
.setContent("Mail test from Outlook!")
.setTitle("测试Outlook邮件")
.send();
我没测试过,你可以试下。
from hutool.
嗯 好的,我看到也是通过自定义属性方式,以为hutool的工具没有自定义来着,我尝试成功再来回复具体方法
from hutool.
Related Issues (20)
- 6.0.0版本 BeanUtil会导致Metaspace溢出 HOT 8
- HttpUtil post 响应结果乱码问题 HOT 1
- 在Windows环境获取指定层级的父路径错误`FileUtil.getParent` HOT 1
- cn.hutool.core.exceptions.UtilException: IllegalAccess for class org.springframework.amqp.utils.SerializationUtils.TRUST_ALL HOT 1
- 是否可以提供简单点的AES加解密方法 HOT 1
- 关于JSONUtil中字符串问题 HOT 1
- 关于JSONUtil序列化Optinal为空字典的问题,有办法可以获取到optional的值吗 HOT 2
- 有没有把inputstream下载到浏览器文件的方法 HOT 1
- 类似jackson的@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") 的注解 HOT 1
- cn.hutool.json.JSONUtil#toBean(java.lang.String, java.lang.Class<T>) 字符串转Bean,@Alias(cn.hutool.core.annotation.Alias)别名注解解析嵌套多层结构数据异常!!! HOT 3
- cron 错误 栈溢出 HOT 1
- LRU Cache 并发get HOT 1
- BeanUtil.copyProperties导致积压class不回收 HOT 11
- 打jar包后fileutils的exist方法找不到resource目录下的文件下,怎么解决呢 HOT 1
- GraphicsUtil 接口变化,导致不兼容旧版本 HOT 1
- JSONUtil.toBean字符串转日期会报错 HOT 1
- 升级5.8.30后ZipUtil压缩成流的方法报错、5.8.29没问题 HOT 3
- [poi] [excel] ExcelReader调用read读取日期时,第一行数据类型是String,第二行开始是DateTime
- FileUtils网络路径支持存在问题
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hutool.