1.pom引入
<!--hutool工具类-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.21</version>
</dependency>
<!-- 邮件-->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
2.邮件内容Bean:
package com.xxx.common.utils.mail;
import lombok.Data;
import java.io.File;
import java.util.List;
@Data
public class SendToVo {
private static final long serialVersionUID = 1L;
/**
* 收件邮箱地址
*/
String toMail;
/**
* 附件
*/
List<File> files;
/**
* 标题
*/
String mailTitle;
/**
* 内容
*/
String content;
/**
* 文件路径
*/
String filesPath;
/**
* 月份/季度
*/
String monthDate;
/**
* 发件日期
*/
String sendDate;
}
2.不使用代理发送邮件
package com.xxx.common.utils.mail;
import cn.hutool.core.lang.Validator;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.mail.MailAccount;
import cn.hutool.extra.mail.MailUtil;
import com.xxx.common.exception.base.BaseException;
import com.xxx.common.utils.AESUtil;
import com.xxx.common.utils.DictUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import java.io.*;
import java.text.MessageFormat;
import java.util.List;
/**
* @author wuhebin
* @description 邮箱发送服务
* @date 2024/1/24 16:36
**/
@Service
public class MyMailUtil {
private static final Logger log = LoggerFactory.getLogger(MyMailUtil.class);
public void send(List<SendToVo> toVoList) throws BaseException {
if(toVoList==null||toVoList.size()==0)return;
String fromMail = DictUtils.getDictValue("sys_param","email.fromMail");
String fromMailHost = DictUtils.getDictValue("sys_param","email.fromMailHost");
String fromMailPort = DictUtils.getDictValue("sys_param","email.fromMailPort");
String fromMailPass = DictUtils.getDictValue("sys_param","email.fromMailPass");
String sslEnable = DictUtils.getDictValue("sys_param","email.sslEnable");
String starttlsEnable = DictUtils.getDictValue("sys_param","email.starttlsEnable");
if(StrUtil.isBlank(fromMail)){
log.error("邮件投递失败,发件人信息未配置邮箱地址");
return;
}
if(StrUtil.isBlank(fromMailHost)){
log.error("邮件投递失败,发件人信息未配置邮箱SMTP服务器域名");
return;
}
if(StrUtil.isBlank(fromMailPort)){
log.error("邮件投递失败,发件人信息未配置邮箱SMTP服务端口");
return;
}
if(!Validator.isNumber(fromMailPort)){
log.error("邮件投递失败,发件人信息配置的邮箱SMTP服务端口不正确,端口应为数字");
return;
}
if(StrUtil.isBlank(fromMailPass)){
log.error("邮件投递失败,发件人信息未配置邮箱授权密码");
return;
}
MailAccount mailAccount = new MailAccount();
mailAccount.setHost(fromMailHost);
mailAccount.setPort(Integer.valueOf(fromMailPort));
mailAccount.setFrom(fromMail);
mailAccount.setUser(fromMail);
mailAccount.setPass(AESUtil.jiemi(fromMailPass));//163我的授权码
mailAccount.setAuth(true);
mailAccount.setSslProtocols("TLSv1.2");
if(StrUtil.equals(sslEnable,"1")){
mailAccount.setSslEnable(true);
}else{
mailAccount.setSslEnable(false);
}
if(StrUtil.equals(starttlsEnable,"1")){
mailAccount.setStarttlsEnable(true);
}else{
mailAccount.setStarttlsEnable(false);
}
for (int i=0;i<toVoList.size();i++){
SendToVo toVo = toVoList.get(i);
String subject = toVo.getMailTitle();
String to = toVo.getToMail();
if (StrUtil.isNotBlank(to)){
to = to + "," + fromMail;
}else{
to = fromMail;
}
String content = toVo.getContent();
List<File> files = toVo.getFiles();
String messageId = "";
try {
if(files!=null&&files.size()>0){
messageId = MailUtil.send( mailAccount, to, subject, content, null, false, files.toArray(new File[files.size()]));
}else{
messageId = MailUtil.send( mailAccount, to, subject, content, null, true);
}
log.info("邮件投递成功,给【"+toVo.getToMail()+"】的主题【"+subject+"】邮件投递成功");
}catch (Exception e){
log.error("邮件投递失败,给【"+toVo.getToMail()+"】的主题【"+subject+"】邮件投递失败:",e);
}
}
}
public String buildContent(String[] array) throws IOException {
//加载邮件html模板
InputStream inputStream = MailUtil.class.getClassLoader().getResourceAsStream("static/Email_Template.html");
BufferedReader fileReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
StringBuffer buffer = new StringBuffer();
String line = "";
try {
while ((line = fileReader.readLine()) != null) {
buffer.append(line);
}
} catch (Exception e) {
log.error("读取文件失败,fileName:{}", "", e);
} finally {
fileReader.close();
}
//替换参数
String htmlText = MessageFormat.format(buffer.toString(), array);
return htmlText;
}
/**
* 读取html文件为String
* @param htmlFileName
* @return
* @throws Exception
*/
public String readHtmlToString(String htmlFileName) throws Exception{
InputStream is = null;
Reader reader = null;
try {
is = MailUtil.class.getClassLoader().getResourceAsStream(htmlFileName);
if (is == null) {
throw new Exception("未找到模板文件");
}
reader = new InputStreamReader(is, "UTF-8");
StringBuilder sb = new StringBuilder();
int bufferSize = 1024;
char[] buffer = new char[bufferSize];
int length = 0;
while ((length = reader.read(buffer, 0, bufferSize)) != -1){
sb.append(buffer, 0, length);
}
return sb.toString();
} finally {
try {
if (is != null) {
is.close();
}
} catch (IOException e) {
log.error("关闭io流异常", e);
}
try {
if (reader != null) {
reader.close();
}
} catch ( IOException e) {
log.error("关闭io流异常", e);
}
}
}
}
3.发送socks代理邮件
package com.xxx.util;
import cn.hutool.core.lang.Validator;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.mail.MailUtil;
import com.xxx.common.exception.ServiceException;
import com.xxx.common.exception.base.BaseException;
import com.xxx.common.utils.AESUtil;
import com.xxx.common.utils.DictUtils;
import com.xxx.common.utils.mail.SendToVo;
import com.asiadb.system.service.impl.SysConfigServiceImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.mail.Address;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.io.*;
import java.text.MessageFormat;
import java.util.Date;
import java.util.List;
import java.util.Properties;
/**
* @author wuhebin
* @description 邮箱发送服务
* @date 2024/1/24 16:36
**/
@Service
public class MyMailUtil {
private static final Logger log = LoggerFactory.getLogger(MyMailUtil.class);
@Autowired
private SysConfigServiceImpl sysConfigService;
public void send(List<SendToVo> toVoList) throws BaseException {
if(toVoList==null||toVoList.size()==0)return;
String fromMail = DictUtils.getDictValue("sys_param","email.fromMail");
String fromMailHost = DictUtils.getDictValue("sys_param","email.fromMailHost");
String fromMailPort = DictUtils.getDictValue("sys_param","email.fromMailPort");
String fromMailPass = DictUtils.getDictValue("sys_param","email.fromMailPass");
String sslEnable = DictUtils.getDictValue("sys_param","email.sslEnable");
String starttlsEnable = DictUtils.getDictValue("sys_param","email.starttlsEnable");
if(StrUtil.isBlank(fromMail)){
log.error("邮件投递失败,发件人信息未配置邮箱地址");
return;
}
if(StrUtil.isBlank(fromMailHost)){
log.error("邮件投递失败,发件人信息未配置邮箱SMTP服务器域名");
return;
}
if(StrUtil.isBlank(fromMailPort)){
log.error("邮件投递失败,发件人信息未配置邮箱SMTP服务端口");
return;
}
if(!Validator.isNumber(fromMailPort)){
log.error("邮件投递失败,发件人信息配置的邮箱SMTP服务端口不正确,端口应为数字");
return;
}
if(StrUtil.isBlank(fromMailPass)){
log.error("邮件投递失败,发件人信息未配置邮箱授权密码");
return;
}
// 设置代理服务器
Properties props = System.getProperties();
// 设置发信邮箱的smtp服务器
props.setProperty("mail.smtp.host", fromMailHost);
// 设置发信邮箱的smtp端口号
props.setProperty("mail.smtp.port", fromMailPort);
// 安全验证
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.ssl.protocols", "TLSv1.2");
props.setProperty("mail.transport.protocol", "smtp");
if(StrUtil.equals(sslEnable,"1")){
props.setProperty("mail.smtp.ssl.enable", "true");
}else{
props.setProperty("mail.smtp.ssl.enable", "false");
}
if(StrUtil.equals(starttlsEnable,"1")){
props.setProperty("mail.smtp.starttls.enable", "true");
}else{
props.setProperty("mail.smtp.starttls.enable", "false");
}
String pwd = AESUtil.jiemi(fromMailPass);
//使用代理
String agentHost = sysConfigService.selectConfigByKey( "network_export_agent.host");
String agentPort = sysConfigService.selectConfigByKey( "network_export_agent.port");
String agentUser = sysConfigService.selectConfigByKey( "network_export_agent.user");
String agentPassword = sysConfigService.selectConfigByKey( "network_export_agent.password");
if(StrUtil.isAllNotBlank(agentHost,agentPort)){
props.setProperty("proxySet", "true");
props.setProperty("socksProxyHost", agentHost);
props.setProperty("socksProxyPort", agentPort);
if (StrUtil.isAllNotBlank(agentUser,agentPassword)){
MyJavaAuthenticator authenticator = new MyJavaAuthenticator(agentUser, agentPassword);
java.net.Authenticator.setDefault(authenticator);
}
}
Session session = Session.getDefaultInstance(props);
for (int i=0;i<toVoList.size();i++){
SendToVo toVo = toVoList.get(i);
String subject = toVo.getMailTitle();
try {
//创建邮件
MimeMessage message = createEmail(session,fromMail,toVo);//将用户和内容传递过来
//获取传输通道
Transport transport = session.getTransport();
transport.connect(fromMailHost,fromMail, pwd);
//连接,并发送邮件
transport.sendMessage(message, message.getAllRecipients());
transport.close();
log.info("邮件投递成功,给【"+toVo.getToMail()+"】的主题【"+subject+"】邮件投递成功");
}catch (Exception e){
log.error("邮件投递失败,给【"+toVo.getToMail()+"】的主题【"+subject+"】邮件投递失败:",e);
e.printStackTrace();
throw new ServiceException("Mail delivery failed, please contact administrator.");
}
}
}
class MyJavaAuthenticator extends java.net.Authenticator {
private String user = "";
private String password = "";
public MyJavaAuthenticator(String user, String password) {
this.user = user;
this.password = password;
}
protected java.net.PasswordAuthentication getPasswordAuthentication() {
return new java.net.PasswordAuthentication(user, password.toCharArray());
}
}
public static MimeMessage createEmail(Session session,String fromMail,SendToVo toVo) throws Exception {
String subject = toVo.getMailTitle();
String to = toVo.getToMail();
if (StrUtil.isNotBlank(to)){
to = to + "," + fromMail;
}else{
to = fromMail;
}
String content = toVo.getContent();
// 根据会话创建邮件
MimeMessage msg = new MimeMessage(session);
// 设置发送邮件方
Address fromAddress = new InternetAddress(fromMail);
msg.setFrom(fromAddress);
// 设置邮件接收方
Address[] internetAddressTo = new InternetAddress().parse(to);
msg.setRecipients(MimeMessage.RecipientType.TO, internetAddressTo);
// 设置邮件标题
msg.setSubject(subject, "utf-8");
msg.setContent(content,"text/html;charset=UTF-8");
// 设置显示的发件时间
msg.setSentDate(new Date());
return msg;
}
public String buildContent(String[] array) throws IOException {
//加载邮件html模板
InputStream inputStream = MailUtil.class.getClassLoader().getResourceAsStream("static/Email_Template.html");
BufferedReader fileReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
StringBuffer buffer = new StringBuffer();
String line = "";
try {
while ((line = fileReader.readLine()) != null) {
buffer.append(line);
}
} catch (Exception e) {
log.error("读取文件失败,fileName:{}", "", e);
} finally {
fileReader.close();
}
//替换参数
String htmlText = MessageFormat.format(buffer.toString(), array);
return htmlText;
}
/**
* 读取html文件为String
* @param htmlFileName
* @return
* @throws Exception
*/
public String readHtmlToString(String htmlFileName) throws Exception{
InputStream is = null;
Reader reader = null;
try {
is = MailUtil.class.getClassLoader().getResourceAsStream(htmlFileName);
if (is == null) {
throw new Exception("未找到模板文件");
}
reader = new InputStreamReader(is, "UTF-8");
StringBuilder sb = new StringBuilder();
int bufferSize = 1024;
char[] buffer = new char[bufferSize];
int length = 0;
while ((length = reader.read(buffer, 0, bufferSize)) != -1){
sb.append(buffer, 0, length);
}
return sb.toString();
} finally {
try {
if (is != null) {
is.close();
}
} catch (IOException e) {
log.error("关闭io流异常", e);
}
try {
if (reader != null) {
reader.close();
}
} catch ( IOException e) {
log.error("关闭io流异常", e);
}
}
}
}
4.使用
public void sendUserEmail(String email, String customerId, String userName, String password, String mailTitle) {
List<SendToVo> toVoList = new ArrayList<>();
SendToVo sendToVo = new SendToVo();
sendToVo.setToMail(email);
sendToVo.setMailTitle(MessageUtils.message(mailTitle));
String array[] = {MessageUtils.message("platform.name"),
MessageUtils.message(mailTitle),
MessageUtils.message("platform.dear") + userName,
MessageUtils.message("platform.thank"),
MessageUtils.message("platform.account"),
MessageUtils.message("platform.customerId"),
customerId,
MessageUtils.message("platform.username"),
"admin",
MessageUtils.message("platform.userPass"),
password,
MessageUtils.message("platform.end"),
MessageUtils.message("platform.jinggao")};
try {
sendToVo.setContent(myMailUtil.buildContent(array));
} catch (IOException e) {
throw new RuntimeException(e);
}
toVoList.add(sendToVo);
myMailUtil.send(toVoList);
}
5.模板static/Email_Template.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
style="width:100%;font-family:\'open sans\', \'helvetica neue\', helvetica, arial, sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;padding:0;Margin:0">
<head>
<meta charset="UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<meta name="x-apple-disable-message-reformatting">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta content="telephone=no" name="format-detection">
<title></title>
<!--[if (mso 16)]>
<style type="text/css">
a
'{'
text-decoration: none
;
'}'
</style>
<![endif]-->
<!--[if gte mso 9]>
<style>sup
'{'
font-size:
100
%
!important
;
'}'</style><![endif]-->
<!--[if gte mso 9]>
<xml>
<o:OfficeDocumentSettings>
<o:AllowPNG></o:AllowPNG>
<o:PixelsPerInch>96</o:PixelsPerInch>
</o:OfficeDocumentSettings>
</xml>
<![endif]-->
<!--[if !mso]><!-- -->
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700,700i" rel="stylesheet">
<!--<![endif]-->
<style type="text/css">
@media only screen and (max-width: 600px) '{'p, ul li, ol li, a
'{' font-size:
16px
!important; line-height:
150%!important '}' h1
'{' font-size:
32px
!important; text-align:center
; line-height:
120%!important '}' h2
'{' font-size:
26px
!important; text-align:center
; line-height:
120%!important '}' h3
'{' font-size:
20px
!important; text-align:center
; line-height:
120%!important '}' h1 a
'{' font-size:
32px
!important '}' h2 a
'{' font-size:
26px
!important '}' h3 a
'{' font-size:
20px
!important '}' .es-menu td a
'{' font-size:
16px
!important '}' .es-header-body p, .es-header-body ul li, .es-header-body ol li, .es-header-body a
'{' font-size:
16px
!important '}' .es-footer-body p, .es-footer-body ul li, .es-footer-body ol li, .es-footer-body a
'{' font-size:
16px
!important '}' .es-infoblock p, .es-infoblock ul li, .es-infoblock ol li, .es-infoblock a
'{' font-size:
12px
!important '}' *[class="gmail-fix"]
'{' display:none
!important '}' .es-m-txt-c, .es-m-txt-c h1, .es-m-txt-c h2, .es-m-txt-c h3
'{' text-align:center
!important '}' .es-m-txt-r, .es-m-txt-r h1, .es-m-txt-r h2, .es-m-txt-r h3
'{' text-align:right
!important '}' .es-m-txt-l, .es-m-txt-l h1, .es-m-txt-l h2, .es-m-txt-l h3
'{' text-align:left
!important '}' .es-m-txt-r img, .es-m-txt-c img, .es-m-txt-l img
'{' display:inline
!important '}' .es-button-border
'{' display:inline-block
!important '}' a.es-button
'{' font-size:
16px
!important; display:inline-block
!important; border-width:
15px
30px
15px
30px
!important '}' .es-btn-fw
'{' border-width:
10px
0px
!important; text-align:center
!important '}' .es-adaptive table, .es-btn-fw, .es-btn-fw-brdr, .es-left, .es-right
'{' width:
100%!important '}' .es-content table, .es-header table, .es-footer table, .es-content, .es-footer, .es-header
'{' width:
100%!important; max-width:
600px
!important '}' .es-adapt-td
'{' display:block
!important; width:
100%!important '}' .adapt-img
'{' width:
100%!important; height:auto
!important '}' .es-m-p0
'{' padding:
0px
!important '}' .es-m-p0r
'{' padding-right:
0px
!important '}' .es-m-p0l
'{' padding-left:
0px
!important '}' .es-m-p0t
'{' padding-top:
0px
!important '}' .es-m-p0b
'{' padding-bottom:
0!important '}' .es-m-p20b
'{' padding-bottom:
20px
!important '}' .es-mobile-hidden, .es-hidden
'{' display:none
!important '}' tr.es-desk-hidden, td.es-desk-hidden, table.es-desk-hidden
'{' display:table-row
!important; width:auto
!important; overflow:visible
!important; float:none
!important; max-height:inherit
!important; line-height:inherit
!important '}' .es-desk-menu-hidden
'{' display:table-cell
!important '}' table.es-table-not-adapt, .esd-block-html table
'{' width:auto
!important '}' table.es-social
'{' display:inline-block
!important '}' table.es-social td
'{' display:inline-block
!important '}' '}'
#outlook a
'{'
padding:
0;
'}'
.ExternalClass
'{'
width:
100%;
'}'
.ExternalClass,
.ExternalClass p,
.ExternalClass span,
.ExternalClass font,
.ExternalClass td,
.ExternalClass div
'{'
line-height:
100%;
'}'
.es-button
'{'
mso-style-priority:
100!important;
text-decoration:none
!important;
'}'
a[x-apple-data-detectors]
'{'
color:inherit
!important;
text-decoration:none
!important;
font-size:inherit
!important;
font-family:inherit
!important;
font-weight:inherit
!important;
line-height:inherit
!important;
'}'
.es-desk-hidden
'{'
display:none
;
float:left
;
overflow:hidden
;
width:
0;
max-height:
0;
line-height:
0;
mso-hide:all
;
'}'
</style>
</head>
<body style="width:100%;font-family:\'open sans\', \'helvetica neue\', helvetica, arial, sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;padding:0;Margin:0">
<div class="es-wrapper-color" style="background-color:#EEEEEE">
<!--[if gte mso 9]>
<v:background xmlns:v="urn:schemas-microsoft-com:vml" fill="t">
<v:fill type="tile" color="#eeeeee"></v:fill>
</v:background>
<![endif]-->
<table class="es-wrapper" width="100%" cellspacing="0" cellpadding="0"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;padding:0;Margin:0;width:100%;height:100%;background-repeat:repeat;background-position:center top">
<tr style="border-collapse:collapse">
<td valign="top" style="padding:0;Margin:0">
<table class="es-content" cellspacing="0" cellpadding="0" align="center"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;table-layout:fixed !important;width:100%">
<tr style="border-collapse:collapse">
<td align="center" style="padding:0;Margin:0">
<table class="es-content-body"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;background-color:transparent;width:600px"
cellspacing="0" cellpadding="0" align="center">
<tr style="border-collapse:collapse">
<td align="left"
style="Margin:0;padding-left:10px;padding-right:10px;padding-top:15px;padding-bottom:15px">
<!--[if mso]>
<table style="width:580px" cellpadding="0" cellspacing="0">
<tr>
<td style="width:282px" valign="top"><![endif]-->
<table class="es-left" cellspacing="0" cellpadding="0" align="left"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;float:left">
<tr style="border-collapse:collapse">
<td align="left" style="padding:0;Margin:0;width:282px">
</td>
</tr>
<!--[if mso]></td></tr></table><![endif]--></td>
</tr>
</table>
</td>
</tr>
</table>
<table class="es-content" cellspacing="0" cellpadding="0" align="center"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;table-layout:fixed !important;width:100%">
<tr style="border-collapse:collapse"></tr>
<tr style="border-collapse:collapse">
<td align="center" style="padding:0;Margin:0">
<table class="es-header-body"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;background-color:#035ef7;width:600px"
cellspacing="0" cellpadding="0" bgcolor="#044767" align="center">
<tr style="border-collapse:collapse">
<td align="left"
style="Margin:0;padding-top:35px;padding-bottom:35px;padding-left:35px;padding-right:35px">
<!--[if mso]>
<table style="width:530px" cellpadding="0" cellspacing="0">
<tr>
<td style="width:340px" valign="top"><![endif]-->
<table class="es-left" cellspacing="0" cellpadding="0" align="left"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;float:left">
<tr style="border-collapse:collapse">
<td class="es-m-p0r es-m-p20b" valign="top" align="center"
style="padding:0;Margin:0;width:340px">
<table width="100%" cellspacing="0" cellpadding="0"
role="presentation"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
<tr style="border-collapse:collapse">
<td class="es-m-txt-c" align="left"
style="padding:0;Margin:0"><h1
style="Margin:0;line-height:36px;mso-line-height-rule:exactly;font-family:\'open sans\', \'helvetica neue\', helvetica, arial, sans-serif;font-size:32px;font-style:normal;font-weight:bold;color:#FFFFFF">
{0}</h1></td>
</tr>
</table>
</td>
</tr>
</table>
<!--[if mso]></td>
<td style="width:20px"></td>
<td style="width:170px" valign="top"><![endif]-->
<table cellspacing="0" cellpadding="0" align="right"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
<tr class="es-hidden" style="border-collapse:collapse">
<td class="es-m-p20b" align="left"
style="padding:0;Margin:0;width:170px">
<table width="100%" cellspacing="0" cellpadding="0"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
<tr style="border-collapse:collapse">
<td style="padding:0;Margin:0">
<table cellspacing="0" cellpadding="0"
align="right"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
<tr style="border-collapse:collapse">
<td align="center"
style="padding:0;Margin:0;display:none"></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<!--[if mso]></td></tr></table><![endif]--></td>
</tr>
</table>
</td>
</tr>
</table>
<table class="es-content" cellspacing="0" cellpadding="0" align="center"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;table-layout:fixed !important;width:100%">
<tr style="border-collapse:collapse">
<td align="center" style="padding:0;Margin:0">
<table class="es-content-body" cellspacing="0" cellpadding="0" bgcolor="#ffffff"
align="center"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;background-color:#FFFFFF;width:600px">
<tr style="border-collapse:collapse">
<td style="Margin:0;padding-bottom:35px;padding-left:35px;padding-right:35px;padding-top:40px;background-color:#F7F7F7"
bgcolor="#f7f7f7" align="left">
<table width="100%" cellspacing="0" cellpadding="0"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
<tr style="border-collapse:collapse">
<td valign="top" align="center"
style="padding:0;Margin:0;width:530px">
<table width="100%" cellspacing="0" cellpadding="0"
role="presentation"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
<tr style="border-collapse:collapse">
<!-- https://s2.loli.net/2024/01/12/8zOfroSxk4YnA5N.png-->
<td style="Margin:0;padding-top:20px;padding-bottom:25px;padding-left:35px;padding-right:35px;font-size:0"
align="center"><a target="_blank"
style="-webkit-text-size-adjust:none;-ms-text-size-adjust:none;mso-line-height-rule:exactly;font-family:\'open sans\', \'helvetica neue\', helvetica, arial, sans-serif;font-size:15px;text-decoration:none;color:#ED8E20"><img
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARcAAACVCAYAAABy3L6zAAAAAXNSR0IArs4c6QAADq1JREFUeF7tnHmsFEUXRwsBMSIqiBoFwQVQiEsUlVWMGEUTjWDUqERAReMelc1AgCEYd1YV96jgCkb9w4iEqIRFQcWocV8xoEAA2YLs8Pmrz570a3u6573HfQ+o04kBMz23u87cPnPrVg11HAcEIAABAwJ1DGISEgIQgIBDLiQBBCBgQgC5mGAlKAQgkCaXAlggkEFg57+vKXdC/zsM/p8MkUcquCNVLoVCYSSPFwQgAIFyCRQKhVH/nFueXEaOxC/lguU8CIRMYNSoUQ65hJwBjB0CRgSQixFYwkIgdALIJfQMYPwQMCKAXIzAEhYCoRNALqFnAOOHgBEB5GIElrAQCJ0Acgk9Axg/BIwIIBcjsISFQOgEkEvoGcD4IWBEALkYgSUsBEIngFxCzwDGDwEjAsjFCCxhIRA6AeQSegYwfggYEUAuRmAJC4HQCSCX0DOA8UPAiAByMQJLWAiETgC5hJ4BjB8CRgSQixFYwkIgdALIJfQMYPwQMCKAXIzAEhYCoRNALqFnAOOHgBEB5GIElrAQCJ0Acgk9Axg/BIwIIBcjsISFQOgEkEvoGcD4IWBEALkYgSUsBEIngFxCzwDGDwEjAsjFCCxhIRA6AeQSegYwfggYEUAuRmAJC4HQCSCX0DOA8UPAiAByMQJLWAiETgC5hJ4BjB8CRgSQixFYwkIgdALIJfQMYPwQMCKAXIzAEhYCoRNALqFnAOOHgBEB5GIElrAQCJ0Acgk9Axg/BIwIIBcjsISFQOgEkEvoGcD4IWBEALkYgSUsBEIngFxCzwDGDwEjAsjFCCxhIRA6AeQSegYwfggYEUAuRmAJC4HQCSCX0DOA8UPAiAByMQJLWAiETgC5hJ4BjB8CRgSQixFYwkIgdALIJfQMYPwQMCKAXIzAEhYCoRNALqFnAOOHgBEB5GIElrAQCJ0Acgk9Axg/BIwIIBcjsISFQOgEkEvoGRAb/7vvvuu++uord/vtt7uGDRtWIPPnn3+6yZMnu1tuucUdeOCBewW1BQsWuJdfftkNHz7cHXrooXvFmHanQSCXGv40fv/9d/fQQw+5m2++2Z144om5V9+wYYPbunWrO/jgg3PPfeqpp9yWLVvcdddd5+Wwdu1aN3LkSHfhhRe6888/39WpU6dkDL3v1ltvdfvtt5974IEH/Pt37tzpduzY4erWreteeukl98Ybb7hx48a5Y445xsfZvHmzq1evnn+91LFmzRpXv359N3v2bDd//nzXtm3b/5y6atUq9/HHH7t7773XHX300bnjLHXCd9995+9x8ODBrkGDBplxxOaGG25wur9CoeA6d+5c5evyxnQCyKUWMkMVwrBhw9yjjz7qunbt6v766y83a9YsL4b4sX37dvfaa685Cebpp592rVq1yrzbhx9+2Atl9OjRXiT6e79+/dxVV13lrrjiCv/edevWufXr17tmzZpViKWH++6773Z9+vRxjRs39q/NmDHDVymDBg3yMjzzzDNd69at/Wu6t9dff90dd9xxXkZ6mL/99ltf+URHdP9HHnmkH+dHH33knnjiCf+y4p133nnu0ksvdYsXL/b3fN9997mmTZsW3y8ZLVq0qOxPaNq0aV5iEyZMcFdffXXJ90maY8aMcXPnznWPPfaYa968ednX4MTyCSCX8lntsjP1bdm3b19fUdx0002+QpAIDjrooMzqIn4DyQdZr3344Yf+lHPOOcf/qcriueeec926dfNVUvSw64FVlRN9W0teEogeyJYtW7pXXnnF3XnnnV4YujfFaNGihZeBJKfqokePHv/hofgSl6qsuDx04ptvvulmzpxZUi4SiyQlBtHx999/+7/uv//+Fa6lWFOmTHEvvPBC8fxt27b5c1RJ5R2S4ltvveXlHp8OianGn5wS5sXj9XQCyKWWMuPnn392RxxxRJUTWeJQpdOoUaPiCFS56JAodESVyzXXXOMrhLQjkofk07FjRx9TwuvZs6c7+eSTfSVy9tlnFx/iH3/80d11111O12rXrl1JertCLgquim758uXusssuK06/0uSiadszzzzjHn/88czp5vTp050qnAcffPA/fZYVK1a4oUOHehlLtFnTvVpKmz3qssillj4ufSsnv5FL3YoEoCnF6aefXqGXoEpB39hRf2Hs2LFeAtdff31RLprqaGp01llnFcNLIPvuu6//f03JVG0cfvjhvt+i45tvvnFHHXWUF5dEpZ7J/fff71/TvXz55Ze+d6IqIX79+P2nyUUN4SuvvNKfpumehKb/JEFNgcaPH1+hcomupymMmq/q92gKk5SLms263rXXXuulWOqQWN5++20/liZNmqSeJh4D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"
alt="icon"
style="display:block;border:0;outline:none;text-decoration:none;-ms-interpolation-mode:bicubic"
title="ship" width="150"></a></td>
</tr>
<tr style="border-collapse:collapse">
<td align="center"
style="padding:0;Margin:0;padding-bottom:15px">
<h2 style="Margin:0;line-height:36px;mso-line-height-rule:exactly;font-family:\'open sans\', \'helvetica neue\', helvetica, arial, sans-serif;font-size:30px;font-style:normal;font-weight:bold;color:#333333">
{1}<br></h2>
</td>
</tr>
<tr style="border-collapse:collapse">
<td class="es-m-txt-l" align="left"
style="padding:0;Margin:0;padding-top:20px">
<h3 style="Margin:0;line-height:22px;mso-line-height-rule:exactly;font-family:\'open sans\', \'helvetica neue\', helvetica, arial, sans-serif;font-size:18px;font-style:normal;font-weight:bold;color:#333333">
{2},</h3></td>
</tr>
<tr style="border-collapse:collapse">
<td align="left"
style="padding:0;Margin:0;padding-bottom:10px;padding-top:15px">
<p style="Margin:0;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;mso-line-height-rule:exactly;font-size:16px;font-family:\'open sans\', \'helvetica neue\', helvetica, arial, sans-serif;line-height:24px;color:#777777">
{3}</p>
<p style="Margin:0;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;mso-line-height-rule:exactly;font-size:16px;font-family:\'open sans\', \'helvetica neue\', helvetica, arial, sans-serif;line-height:24px;color:#777777">
{12}</p>
</td>
</tr>
<tr>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table class="es-content" cellspacing="0" cellpadding="0" align="center"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;table-layout:fixed !important;width:100%">
<tr style="border-collapse:collapse">
<td align="center" style="padding:0;Margin:0">
<table class="es-content-body" cellspacing="0" cellpadding="0" bgcolor="#ffffff"
align="center"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;background-color:#FFFFFF;width:600px">
<tr style="border-collapse:collapse">
<td align="left"
style="padding:0;Margin:0;padding-top:20px;padding-left:35px;padding-right:35px">
<table width="100%" cellspacing="0" cellpadding="0"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
<tr style="border-collapse:collapse">
<td valign="top" align="center"
style="padding:0;Margin:0;width:530px">
<table width="100%" cellspacing="0" cellpadding="0"
role="presentation"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
<tr style="border-collapse:collapse">
<td bgcolor="#eeeeee" align="left"
style="Margin:0;padding-top:10px;padding-bottom:10px;padding-left:10px;padding-right:10px">
<table style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;width:500px"
class="cke_show_border"
cellspacing="1" cellpadding="1"
border="0" align="left"
role="presentation">
<tr style="border-collapse:collapse">
<td width="80%"
style="padding:0;Margin:0"><h4
style="Margin:0;line-height:120%;mso-line-height-rule:exactly;font-family:\'open sans\', \'helvetica neue\', helvetica, arial, sans-serif">
{4}</h4></td>
<td width="20%"
style="padding:0;Margin:0"><h4
style="Margin:0;line-height:120%;mso-line-height-rule:exactly;font-family:\'open sans\', \'helvetica neue\', helvetica, arial, sans-serif">
<br></h4></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr style="border-collapse:collapse">
<td align="left"
style="padding:0;Margin:0;padding-left:35px;padding-right:35px">
<table width="100%" cellspacing="0" cellpadding="0"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
<tr style="border-collapse:collapse">
<td valign="top" align="center"
style="padding:0;Margin:0;width:530px">
<table style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:separate;border-spacing:0px;border-color:transparent;border-style:solid;border-width:3px;border-radius:14px"
width="100%" cellspacing="0" cellpadding="0"
role="presentation">
<tr style="border-collapse:collapse">
<td align="center"
style="Margin:0;padding-top:10px;padding-bottom:10px;padding-left:10px;padding-right:10px">
<table style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;width:500px"
class="cke_show_border"
cellspacing="1" cellpadding="1"
border="0" align="left"
role="presentation">
<tr style="border-collapse:collapse">
<td style="padding:5px 10px 5px 0;Margin:0"
width="80%" align="left"><p
style="Margin:0;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;mso-line-height-rule:exactly;font-size:15px;font-family:\'open sans\', \'helvetica neue\', helvetica, arial, sans-serif;line-height:23px;color:#333333">
{5}</p>
</td>
<td style="padding:5px 0;Margin:0"
width="20%" align="left"><p
style="Margin:0;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;mso-line-height-rule:exactly;font-size:15px;font-family:\'open sans\', \'helvetica neue\', helvetica, arial, sans-serif;line-height:23px;color:#333333">
{6}</p></td>
</tr>
<tr>
<td style="padding:5px 10px 5px 0;Margin:0"
width="80%" align="left"><p
style="Margin:0;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;mso-line-height-rule:exactly;font-size:15px;font-family:\'open sans\', \'helvetica neue\', helvetica, arial, sans-serif;line-height:23px;color:#333333">
{7}</p></td>
<td style="padding:5px 0;Margin:0"
width="20%" align="left"><p
style="Margin:0;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;mso-line-height-rule:exactly;font-size:15px;font-family:\'open sans\', \'helvetica neue\', helvetica, arial, sans-serif;line-height:23px;color:#333333">
{8}</p></td>
</tr>
<tr>
<td style="padding:5px 10px 5px 0;Margin:0"
width="80%" align="left"><p
style="Margin:0;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;mso-line-height-rule:exactly;font-size:15px;font-family:\'open sans\', \'helvetica neue\', helvetica, arial, sans-serif;line-height:23px;color:#333333">
{9}</p></td>
<td style="padding:5px 0;Margin:0"
width="20%" align="left"><p
style="Margin:0;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;mso-line-height-rule:exactly;font-size:15px;font-family:\'open sans\', \'helvetica neue\', helvetica, arial, sans-serif;line-height:23px;color:#333333">
{10}</p></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr style="border-collapse:collapse">
<td align="left"
style="padding:0;Margin:0;padding-top:20px;padding-left:35px;padding-right:35px">
<table width="100%" cellspacing="0" cellpadding="0"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
<tr style="border-collapse:collapse">
<td valign="top" align="center"
style="padding:0;Margin:0;width:530px">
<table width="100%" cellspacing="0" cellpadding="0"
role="presentation"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
<tr style="border-collapse:collapse">
<td bgcolor="#eeeeee" align="left"
style="Margin:0;padding-top:10px;padding-bottom:10px;padding-left:10px;padding-right:10px">
<table style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;width:500px"
class="cke_show_border"
cellspacing="1" cellpadding="1"
border="0" align="left"
role="presentation">
<tr style="border-collapse:collapse">
<td width="80%"
style="padding:0;Margin:0"><h6
style="Margin:0;line-height:120%;mso-line-height-rule:exactly;font-family:\'open sans\', \'helvetica neue\', helvetica, arial, sans-serif">
{11}</h6></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table class="es-footer" cellspacing="0" cellpadding="0" align="center"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;table-layout:fixed !important;width:100%;background-color:transparent;background-repeat:repeat;background-position:center top">
<tr style="border-collapse:collapse">
<td align="center" style="padding:0;Margin:0">
<table class="es-footer-body" cellspacing="0" cellpadding="0" align="center"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;background-color:#FFFFFF;width:600px">
<tr style="border-collapse:collapse">
<td align="left"
style="Margin:0;padding-top:35px;padding-left:35px;padding-right:35px;padding-bottom:40px">
<table width="100%" cellspacing="0" cellpadding="0"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
<tr style="border-collapse:collapse">
<td valign="top" align="center"
style="padding:0;Margin:0;width:530px">
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table class="es-content" cellspacing="0" cellpadding="0" align="center"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;table-layout:fixed !important;width:100%">
<tr style="border-collapse:collapse">
<td align="center" style="padding:0;Margin:0">
<table class="es-content-body"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;background-color:transparent;width:600px"
cellspacing="0" cellpadding="0" align="center">
<tr style="border-collapse:collapse">
<td align="left"
style="Margin:0;padding-left:20px;padding-right:20px;padding-top:30px;padding-bottom:30px">
<table width="100%" cellspacing="0" cellpadding="0"
style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
<tr style="border-collapse:collapse">
<td valign="top" align="center"
style="padding:0;Margin:0;width:560px">
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</body>
</html>
本文含有隐藏内容,请 开通VIP 后查看