相关文章推荐
果断的乌冬面
·
【minio】CentOS7.x上对象存储服 ...
·
1 年前
·
逃课的紫菜汤
·
New-AzureADMSGroup ...
·
1 年前
·
怕老婆的沙滩裤
·
浏览器页面前端自适应方案 - 简书
·
1 年前
·
大鼻子的企鹅
·
python字符串练习 ...
·
1 年前
·
Code
›
Java邮件发送解决ssl javax.mail实现方式 - oktokeep
string
session
smtp
https://www.cnblogs.com/oktokeep/p/15928771.html
鬼畜的可乐
1 月前
import
org.slf4j.Logger;
import
org.slf4j.LoggerFactory;
import
javax.activation.DataHandler;
import
javax.activation.DataSource;
import
javax.mail.*
;
import
javax.mail.internet.*
;
import
javax.mail.util.ByteArrayDataSource;
import
java.io.ByteArrayInputStream;
import
java.util.Properties; * Java邮件发送解决ssl javax.mail实现方式 * Caused by: javax.mail.AuthenticationFailedException: 535 5.7.0 ERR.LOGIN.NONSSL 需要add 解决ssl发送邮件 属性的配置
public
class
MultiEmailTest {
private
static
Logger logger = LoggerFactory.getLogger(MultiEmailV3.
class
); * 系统属性
private
static
Properties props =
System.getProperties(); * 邮件会话对象
private
static
Session session; * MIME邮件对象
private
static
MimeMessage mimeMsg;
private
static
Multipart mp =
null
;
private
static
final
String HOST_NAME = "smtp.qiye.163.com";
//
邮件服务器 可配
private
static
final
String FROM_ADDR = "xxx@xx.com";
//
邮件发送者地址 可配
private
static
final
String FROM_NAME = "xxx@xx.com";
//
邮件发送者名称 可配
private
static
final
String FROM_PWD = "xx";
//
邮件发送者密码 可配
private
static
final
String SMTP = "smtp"
;
static
{
//
add 解决ssl发送邮件
props.put("mail.smtp.starttls.enable",
true
); * 发送邮件 *
@param
tos 收件人 *
@param
copyTos 抄送人 *
@param
subject 主题(标题) *
@param
content 正文(内容) *
@throws
Exception 异常
public
static
void
sendMail(String[] tos, String[] copyTos, String subject, String content)
throws
Exception {
//
Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象
BodyPart bp =
setBodyPart(tos, subject, content); send(copyTos, bp); * 发送邮件(带附件) *
@param
tos 收件人 *
@param
copyTos 抄送人 *
@param
subject 主题(标题) *
@param
content 正文(内容) *
@throws
Exception 异常
public
static
void
sendMailAttachment(String[] tos, String[] copyTos, String subject, String content, ByteArrayInputStream stream, String fileName, String type)
throws
Exception {
//
Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象
BodyPart bp =
setBodyPart(tos, subject, content);
//
邮件内容部分2---附件1
MimeBodyPart body1 =
new
MimeBodyPart(); DataSource dataSource1
=
new
ByteArrayDataSource(stream, type);
//
代表项目根目录下
body1.setDataHandler(
new
DataHandler(dataSource1));
//
中文附件名,解决乱码
body1.setFileName(MimeUtility.encodeText(fileName)); mp.addBodyPart(bp); send(copyTos, body1); * 构建body *
@param
tos *
@param
subject *
@param
content *
@return
*
@throws
MessagingException
private
static
BodyPart setBodyPart(String[] tos, String subject, String content)
throws
MessagingException { mp
=
new
MimeMultipart(); mimeMsg
=
new
MimeMessage(session);
//
add 解决ssl发送邮件
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"
); props.put(
"mail.smtp.socketFactory.port", 465
); props.put(
"mail.smtp.port", 465
); session
= Session.getDefaultInstance(props,
null
); session.setDebug(
false
);
//
设置发信人
mimeMsg.setFrom(
new
InternetAddress(FROM_ADDR));
//
设置接收人
InternetAddress[] sendTo =
new
InternetAddress[tos.length];
for
(
int
i = 0; i < tos.length; i++
) { sendTo[i]
=
new
InternetAddress(tos[i]); mimeMsg.setRecipients(Message.RecipientType.TO, sendTo);
//
设置主题
mimeMsg.setSubject(subject);
//
设置正文
BodyPart bp =
new
MimeBodyPart(); bp.setContent(content,
"text/html;charset=utf-8"
);
return
bp; * body追加部分 *
@param
copyTos *
@param
bp *
@throws
MessagingException
private
static
void
send(String[] copyTos, BodyPart bp)
throws
MessagingException { mp.addBodyPart(bp); mimeMsg.setContent(mp); mimeMsg.saveChanges();
//
发送邮件
Transport transport =
session.getTransport(SMTP); transport.connect(HOST_NAME, FROM_NAME, FROM_PWD); transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.TO));
if
(copyTos !=
null
&& copyTos.length > 0
) {
//
设置抄送人
for
(
int
i = 0; i < copyTos.length; i++
) { mimeMsg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(copyTos[i])); transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.CC)); transport.close();
//
测试
public
static
void
main(String[] args)
throws
Exception { String[] tos
= {"xxx@xx.com"};
//
接收者的邮箱地址
String errorMsg = "123\n223"
; ByteArrayInputStream stream
=
new
ByteArrayInputStream(errorMsg.getBytes());
//
带附件的邮件
//
sendMailAttachment(tos, null, "测试邮件-附件邮件含附件", "Dear ALL 2233:<br><br> 详见附件", stream, "文件.txt", "application/txt");
//
普通邮件
sendMail(tos,
null
,"测试邮件-普通邮件不含附件","邮件内容这是一封测试邮件"
);
推荐文章
果断的乌冬面
·
【minio】CentOS7.x上对象存储服务minio单机的安装配置 - 简书
1 年前
逃课的紫菜汤
·
New-AzureADMSGroup (AzureAD) | Microsoft Learn
1 年前
怕老婆的沙滩裤
·
浏览器页面前端自适应方案 - 简书
1 年前
大鼻子的企鹅
·
python字符串练习 ip地址转为二进制后 计算新二进制的十进制值_pythonip地址二进制转换_koukou0419的博客-CSDN博客
1 年前