当前位置:   article > 正文

javax mail邮件发送(sockts代理)

javax mail邮件发送(sockts代理)

1.pom引入

  1. <!--hutool工具类-->
  2. <dependency>
  3. <groupId>cn.hutool</groupId>
  4. <artifactId>hutool-all</artifactId>
  5. <version>5.7.21</version>
  6. </dependency>
  7. <!-- 邮件-->
  8. <dependency>
  9. <groupId>javax.mail</groupId>
  10. <artifactId>mail</artifactId>
  11. <version>1.4.7</version>
  12. </dependency>

2.邮件内容Bean:

  1. package com.xxx.common.utils.mail;
  2. import lombok.Data;
  3. import java.io.File;
  4. import java.util.List;
  5. @Data
  6. public class SendToVo {
  7. private static final long serialVersionUID = 1L;
  8. /**
  9. * 收件邮箱地址
  10. */
  11. String toMail;
  12. /**
  13. * 附件
  14. */
  15. List<File> files;
  16. /**
  17. * 标题
  18. */
  19. String mailTitle;
  20. /**
  21. * 内容
  22. */
  23. String content;
  24. /**
  25. * 文件路径
  26. */
  27. String filesPath;
  28. /**
  29. * 月份/季度
  30. */
  31. String monthDate;
  32. /**
  33. * 发件日期
  34. */
  35. String sendDate;
  36. }

2.不使用代理发送邮件

  1. package com.xxx.common.utils.mail;
  2. import cn.hutool.core.lang.Validator;
  3. import cn.hutool.core.util.StrUtil;
  4. import cn.hutool.extra.mail.MailAccount;
  5. import cn.hutool.extra.mail.MailUtil;
  6. import com.xxx.common.exception.base.BaseException;
  7. import com.xxx.common.utils.AESUtil;
  8. import com.xxx.common.utils.DictUtils;
  9. import org.slf4j.Logger;
  10. import org.slf4j.LoggerFactory;
  11. import org.springframework.stereotype.Service;
  12. import java.io.*;
  13. import java.text.MessageFormat;
  14. import java.util.List;
  15. /**
  16. * @author wuhebin
  17. * @description 邮箱发送服务
  18. * @date 2024/1/24 16:36
  19. **/
  20. @Service
  21. public class MyMailUtil {
  22. private static final Logger log = LoggerFactory.getLogger(MyMailUtil.class);
  23. public void send(List<SendToVo> toVoList) throws BaseException {
  24. if(toVoList==null||toVoList.size()==0)return;
  25. String fromMail = DictUtils.getDictValue("sys_param","email.fromMail");
  26. String fromMailHost = DictUtils.getDictValue("sys_param","email.fromMailHost");
  27. String fromMailPort = DictUtils.getDictValue("sys_param","email.fromMailPort");
  28. String fromMailPass = DictUtils.getDictValue("sys_param","email.fromMailPass");
  29. String sslEnable = DictUtils.getDictValue("sys_param","email.sslEnable");
  30. String starttlsEnable = DictUtils.getDictValue("sys_param","email.starttlsEnable");
  31. if(StrUtil.isBlank(fromMail)){
  32. log.error("邮件投递失败,发件人信息未配置邮箱地址");
  33. return;
  34. }
  35. if(StrUtil.isBlank(fromMailHost)){
  36. log.error("邮件投递失败,发件人信息未配置邮箱SMTP服务器域名");
  37. return;
  38. }
  39. if(StrUtil.isBlank(fromMailPort)){
  40. log.error("邮件投递失败,发件人信息未配置邮箱SMTP服务端口");
  41. return;
  42. }
  43. if(!Validator.isNumber(fromMailPort)){
  44. log.error("邮件投递失败,发件人信息配置的邮箱SMTP服务端口不正确,端口应为数字");
  45. return;
  46. }
  47. if(StrUtil.isBlank(fromMailPass)){
  48. log.error("邮件投递失败,发件人信息未配置邮箱授权密码");
  49. return;
  50. }
  51. MailAccount mailAccount = new MailAccount();
  52. mailAccount.setHost(fromMailHost);
  53. mailAccount.setPort(Integer.valueOf(fromMailPort));
  54. mailAccount.setFrom(fromMail);
  55. mailAccount.setUser(fromMail);
  56. mailAccount.setPass(AESUtil.jiemi(fromMailPass));//163我的授权码
  57. mailAccount.setAuth(true);
  58. mailAccount.setSslProtocols("TLSv1.2");
  59. if(StrUtil.equals(sslEnable,"1")){
  60. mailAccount.setSslEnable(true);
  61. }else{
  62. mailAccount.setSslEnable(false);
  63. }
  64. if(StrUtil.equals(starttlsEnable,"1")){
  65. mailAccount.setStarttlsEnable(true);
  66. }else{
  67. mailAccount.setStarttlsEnable(false);
  68. }
  69. for (int i=0;i<toVoList.size();i++){
  70. SendToVo toVo = toVoList.get(i);
  71. String subject = toVo.getMailTitle();
  72. String to = toVo.getToMail();
  73. if (StrUtil.isNotBlank(to)){
  74. to = to + "," + fromMail;
  75. }else{
  76. to = fromMail;
  77. }
  78. String content = toVo.getContent();
  79. List<File> files = toVo.getFiles();
  80. String messageId = "";
  81. try {
  82. if(files!=null&&files.size()>0){
  83. messageId = MailUtil.send( mailAccount, to, subject, content, null, false, files.toArray(new File[files.size()]));
  84. }else{
  85. messageId = MailUtil.send( mailAccount, to, subject, content, null, true);
  86. }
  87. log.info("邮件投递成功,给【"+toVo.getToMail()+"】的主题【"+subject+"】邮件投递成功");
  88. }catch (Exception e){
  89. log.error("邮件投递失败,给【"+toVo.getToMail()+"】的主题【"+subject+"】邮件投递失败:",e);
  90. }
  91. }
  92. }
  93. public String buildContent(String[] array) throws IOException {
  94. //加载邮件html模板
  95. InputStream inputStream = MailUtil.class.getClassLoader().getResourceAsStream("static/Email_Template.html");
  96. BufferedReader fileReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
  97. StringBuffer buffer = new StringBuffer();
  98. String line = "";
  99. try {
  100. while ((line = fileReader.readLine()) != null) {
  101. buffer.append(line);
  102. }
  103. } catch (Exception e) {
  104. log.error("读取文件失败,fileName:{}", "", e);
  105. } finally {
  106. fileReader.close();
  107. }
  108. //替换参数
  109. String htmlText = MessageFormat.format(buffer.toString(), array);
  110. return htmlText;
  111. }
  112. /**
  113. * 读取html文件为String
  114. * @param htmlFileName
  115. * @return
  116. * @throws Exception
  117. */
  118. public String readHtmlToString(String htmlFileName) throws Exception{
  119. InputStream is = null;
  120. Reader reader = null;
  121. try {
  122. is = MailUtil.class.getClassLoader().getResourceAsStream(htmlFileName);
  123. if (is == null) {
  124. throw new Exception("未找到模板文件");
  125. }
  126. reader = new InputStreamReader(is, "UTF-8");
  127. StringBuilder sb = new StringBuilder();
  128. int bufferSize = 1024;
  129. char[] buffer = new char[bufferSize];
  130. int length = 0;
  131. while ((length = reader.read(buffer, 0, bufferSize)) != -1){
  132. sb.append(buffer, 0, length);
  133. }
  134. return sb.toString();
  135. } finally {
  136. try {
  137. if (is != null) {
  138. is.close();
  139. }
  140. } catch (IOException e) {
  141. log.error("关闭io流异常", e);
  142. }
  143. try {
  144. if (reader != null) {
  145. reader.close();
  146. }
  147. } catch ( IOException e) {
  148. log.error("关闭io流异常", e);
  149. }
  150. }
  151. }
  152. }

3.发送socks代理邮件

  1. package com.xxx.util;
  2. import cn.hutool.core.lang.Validator;
  3. import cn.hutool.core.util.StrUtil;
  4. import cn.hutool.extra.mail.MailUtil;
  5. import com.xxx.common.exception.ServiceException;
  6. import com.xxx.common.exception.base.BaseException;
  7. import com.xxx.common.utils.AESUtil;
  8. import com.xxx.common.utils.DictUtils;
  9. import com.xxx.common.utils.mail.SendToVo;
  10. import com.asiadb.system.service.impl.SysConfigServiceImpl;
  11. import org.slf4j.Logger;
  12. import org.slf4j.LoggerFactory;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Service;
  15. import javax.mail.Address;
  16. import javax.mail.Session;
  17. import javax.mail.Transport;
  18. import javax.mail.internet.InternetAddress;
  19. import javax.mail.internet.MimeMessage;
  20. import java.io.*;
  21. import java.text.MessageFormat;
  22. import java.util.Date;
  23. import java.util.List;
  24. import java.util.Properties;
  25. /**
  26. * @author wuhebin
  27. * @description 邮箱发送服务
  28. * @date 2024/1/24 16:36
  29. **/
  30. @Service
  31. public class MyMailUtil {
  32. private static final Logger log = LoggerFactory.getLogger(MyMailUtil.class);
  33. @Autowired
  34. private SysConfigServiceImpl sysConfigService;
  35. public void send(List<SendToVo> toVoList) throws BaseException {
  36. if(toVoList==null||toVoList.size()==0)return;
  37. String fromMail = DictUtils.getDictValue("sys_param","email.fromMail");
  38. String fromMailHost = DictUtils.getDictValue("sys_param","email.fromMailHost");
  39. String fromMailPort = DictUtils.getDictValue("sys_param","email.fromMailPort");
  40. String fromMailPass = DictUtils.getDictValue("sys_param","email.fromMailPass");
  41. String sslEnable = DictUtils.getDictValue("sys_param","email.sslEnable");
  42. String starttlsEnable = DictUtils.getDictValue("sys_param","email.starttlsEnable");
  43. if(StrUtil.isBlank(fromMail)){
  44. log.error("邮件投递失败,发件人信息未配置邮箱地址");
  45. return;
  46. }
  47. if(StrUtil.isBlank(fromMailHost)){
  48. log.error("邮件投递失败,发件人信息未配置邮箱SMTP服务器域名");
  49. return;
  50. }
  51. if(StrUtil.isBlank(fromMailPort)){
  52. log.error("邮件投递失败,发件人信息未配置邮箱SMTP服务端口");
  53. return;
  54. }
  55. if(!Validator.isNumber(fromMailPort)){
  56. log.error("邮件投递失败,发件人信息配置的邮箱SMTP服务端口不正确,端口应为数字");
  57. return;
  58. }
  59. if(StrUtil.isBlank(fromMailPass)){
  60. log.error("邮件投递失败,发件人信息未配置邮箱授权密码");
  61. return;
  62. }
  63. // 设置代理服务器
  64. Properties props = System.getProperties();
  65. // 设置发信邮箱的smtp服务器
  66. props.setProperty("mail.smtp.host", fromMailHost);
  67. // 设置发信邮箱的smtp端口号
  68. props.setProperty("mail.smtp.port", fromMailPort);
  69. // 安全验证
  70. props.put("mail.smtp.auth", "true");
  71. props.put("mail.smtp.ssl.protocols", "TLSv1.2");
  72. props.setProperty("mail.transport.protocol", "smtp");
  73. if(StrUtil.equals(sslEnable,"1")){
  74. props.setProperty("mail.smtp.ssl.enable", "true");
  75. }else{
  76. props.setProperty("mail.smtp.ssl.enable", "false");
  77. }
  78. if(StrUtil.equals(starttlsEnable,"1")){
  79. props.setProperty("mail.smtp.starttls.enable", "true");
  80. }else{
  81. props.setProperty("mail.smtp.starttls.enable", "false");
  82. }
  83. String pwd = AESUtil.jiemi(fromMailPass);
  84. //使用代理
  85. String agentHost = sysConfigService.selectConfigByKey( "network_export_agent.host");
  86. String agentPort = sysConfigService.selectConfigByKey( "network_export_agent.port");
  87. String agentUser = sysConfigService.selectConfigByKey( "network_export_agent.user");
  88. String agentPassword = sysConfigService.selectConfigByKey( "network_export_agent.password");
  89. if(StrUtil.isAllNotBlank(agentHost,agentPort)){
  90. props.setProperty("proxySet", "true");
  91. props.setProperty("socksProxyHost", agentHost);
  92. props.setProperty("socksProxyPort", agentPort);
  93. if (StrUtil.isAllNotBlank(agentUser,agentPassword)){
  94. MyJavaAuthenticator authenticator = new MyJavaAuthenticator(agentUser, agentPassword);
  95. java.net.Authenticator.setDefault(authenticator);
  96. }
  97. }
  98. Session session = Session.getDefaultInstance(props);
  99. for (int i=0;i<toVoList.size();i++){
  100. SendToVo toVo = toVoList.get(i);
  101. String subject = toVo.getMailTitle();
  102. try {
  103. //创建邮件
  104. MimeMessage message = createEmail(session,fromMail,toVo);//将用户和内容传递过来
  105. //获取传输通道
  106. Transport transport = session.getTransport();
  107. transport.connect(fromMailHost,fromMail, pwd);
  108. //连接,并发送邮件
  109. transport.sendMessage(message, message.getAllRecipients());
  110. transport.close();
  111. log.info("邮件投递成功,给【"+toVo.getToMail()+"】的主题【"+subject+"】邮件投递成功");
  112. }catch (Exception e){
  113. log.error("邮件投递失败,给【"+toVo.getToMail()+"】的主题【"+subject+"】邮件投递失败:",e);
  114. e.printStackTrace();
  115. throw new ServiceException("Mail delivery failed, please contact administrator.");
  116. }
  117. }
  118. }
  119. class MyJavaAuthenticator extends java.net.Authenticator {
  120. private String user = "";
  121. private String password = "";
  122. public MyJavaAuthenticator(String user, String password) {
  123. this.user = user;
  124. this.password = password;
  125. }
  126. protected java.net.PasswordAuthentication getPasswordAuthentication() {
  127. return new java.net.PasswordAuthentication(user, password.toCharArray());
  128. }
  129. }
  130. public static MimeMessage createEmail(Session session,String fromMail,SendToVo toVo) throws Exception {
  131. String subject = toVo.getMailTitle();
  132. String to = toVo.getToMail();
  133. if (StrUtil.isNotBlank(to)){
  134. to = to + "," + fromMail;
  135. }else{
  136. to = fromMail;
  137. }
  138. String content = toVo.getContent();
  139. // 根据会话创建邮件
  140. MimeMessage msg = new MimeMessage(session);
  141. // 设置发送邮件方
  142. Address fromAddress = new InternetAddress(fromMail);
  143. msg.setFrom(fromAddress);
  144. // 设置邮件接收方
  145. Address[] internetAddressTo = new InternetAddress().parse(to);
  146. msg.setRecipients(MimeMessage.RecipientType.TO, internetAddressTo);
  147. // 设置邮件标题
  148. msg.setSubject(subject, "utf-8");
  149. msg.setContent(content,"text/html;charset=UTF-8");
  150. // 设置显示的发件时间
  151. msg.setSentDate(new Date());
  152. return msg;
  153. }
  154. public String buildContent(String[] array) throws IOException {
  155. //加载邮件html模板
  156. InputStream inputStream = MailUtil.class.getClassLoader().getResourceAsStream("static/Email_Template.html");
  157. BufferedReader fileReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
  158. StringBuffer buffer = new StringBuffer();
  159. String line = "";
  160. try {
  161. while ((line = fileReader.readLine()) != null) {
  162. buffer.append(line);
  163. }
  164. } catch (Exception e) {
  165. log.error("读取文件失败,fileName:{}", "", e);
  166. } finally {
  167. fileReader.close();
  168. }
  169. //替换参数
  170. String htmlText = MessageFormat.format(buffer.toString(), array);
  171. return htmlText;
  172. }
  173. /**
  174. * 读取html文件为String
  175. * @param htmlFileName
  176. * @return
  177. * @throws Exception
  178. */
  179. public String readHtmlToString(String htmlFileName) throws Exception{
  180. InputStream is = null;
  181. Reader reader = null;
  182. try {
  183. is = MailUtil.class.getClassLoader().getResourceAsStream(htmlFileName);
  184. if (is == null) {
  185. throw new Exception("未找到模板文件");
  186. }
  187. reader = new InputStreamReader(is, "UTF-8");
  188. StringBuilder sb = new StringBuilder();
  189. int bufferSize = 1024;
  190. char[] buffer = new char[bufferSize];
  191. int length = 0;
  192. while ((length = reader.read(buffer, 0, bufferSize)) != -1){
  193. sb.append(buffer, 0, length);
  194. }
  195. return sb.toString();
  196. } finally {
  197. try {
  198. if (is != null) {
  199. is.close();
  200. }
  201. } catch (IOException e) {
  202. log.error("关闭io流异常", e);
  203. }
  204. try {
  205. if (reader != null) {
  206. reader.close();
  207. }
  208. } catch ( IOException e) {
  209. log.error("关闭io流异常", e);
  210. }
  211. }
  212. }
  213. }

4.使用

  1. public void sendUserEmail(String email, String customerId, String userName, String password, String mailTitle) {
  2. List<SendToVo> toVoList = new ArrayList<>();
  3. SendToVo sendToVo = new SendToVo();
  4. sendToVo.setToMail(email);
  5. sendToVo.setMailTitle(MessageUtils.message(mailTitle));
  6. String array[] = {MessageUtils.message("platform.name"),
  7. MessageUtils.message(mailTitle),
  8. MessageUtils.message("platform.dear") + userName,
  9. MessageUtils.message("platform.thank"),
  10. MessageUtils.message("platform.account"),
  11. MessageUtils.message("platform.customerId"),
  12. customerId,
  13. MessageUtils.message("platform.username"),
  14. "admin",
  15. MessageUtils.message("platform.userPass"),
  16. password,
  17. MessageUtils.message("platform.end"),
  18. MessageUtils.message("platform.jinggao")};
  19. try {
  20. sendToVo.setContent(myMailUtil.buildContent(array));
  21. } catch (IOException e) {
  22. throw new RuntimeException(e);
  23. }
  24. toVoList.add(sendToVo);
  25. myMailUtil.send(toVoList);
  26. }

5.模板static/Email_Template.html

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml"
  4. 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">
  5. <head>
  6. <meta charset="UTF-8">
  7. <meta content="width=device-width, initial-scale=1" name="viewport">
  8. <meta name="x-apple-disable-message-reformatting">
  9. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  10. <meta content="telephone=no" name="format-detection">
  11. <title></title>
  12. <!--[if (mso 16)]>
  13. <style type="text/css">
  14. a
  15. '{'
  16. text-decoration: none
  17. ;
  18. '}'
  19. </style>
  20. <![endif]-->
  21. <!--[if gte mso 9]>
  22. <style>sup
  23. '{'
  24. font-size:
  25. 100
  26. %
  27. !important
  28. ;
  29. '}'</style><![endif]-->
  30. <!--[if gte mso 9]>
  31. <xml>
  32. <o:OfficeDocumentSettings>
  33. <o:AllowPNG></o:AllowPNG>
  34. <o:PixelsPerInch>96</o:PixelsPerInch>
  35. </o:OfficeDocumentSettings>
  36. </xml>
  37. <![endif]-->
  38. <!--[if !mso]><!-- -->
  39. <link href="https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700,700i" rel="stylesheet">
  40. <!--<![endif]-->
  41. <style type="text/css">
  42. @media only screen and (max-width: 600px) '{'p, ul li, ol li, a
  43. '{' font-size:
  44. 16px
  45. !important; line-height:
  46. 150%!important '}' h1
  47. '{' font-size:
  48. 32px
  49. !important; text-align:center
  50. ; line-height:
  51. 120%!important '}' h2
  52. '{' font-size:
  53. 26px
  54. !important; text-align:center
  55. ; line-height:
  56. 120%!important '}' h3
  57. '{' font-size:
  58. 20px
  59. !important; text-align:center
  60. ; line-height:
  61. 120%!important '}' h1 a
  62. '{' font-size:
  63. 32px
  64. !important '}' h2 a
  65. '{' font-size:
  66. 26px
  67. !important '}' h3 a
  68. '{' font-size:
  69. 20px
  70. !important '}' .es-menu td a
  71. '{' font-size:
  72. 16px
  73. !important '}' .es-header-body p, .es-header-body ul li, .es-header-body ol li, .es-header-body a
  74. '{' font-size:
  75. 16px
  76. !important '}' .es-footer-body p, .es-footer-body ul li, .es-footer-body ol li, .es-footer-body a
  77. '{' font-size:
  78. 16px
  79. !important '}' .es-infoblock p, .es-infoblock ul li, .es-infoblock ol li, .es-infoblock a
  80. '{' font-size:
  81. 12px
  82. !important '}' *[class="gmail-fix"]
  83. '{' display:none
  84. !important '}' .es-m-txt-c, .es-m-txt-c h1, .es-m-txt-c h2, .es-m-txt-c h3
  85. '{' text-align:center
  86. !important '}' .es-m-txt-r, .es-m-txt-r h1, .es-m-txt-r h2, .es-m-txt-r h3
  87. '{' text-align:right
  88. !important '}' .es-m-txt-l, .es-m-txt-l h1, .es-m-txt-l h2, .es-m-txt-l h3
  89. '{' text-align:left
  90. !important '}' .es-m-txt-r img, .es-m-txt-c img, .es-m-txt-l img
  91. '{' display:inline
  92. !important '}' .es-button-border
  93. '{' display:inline-block
  94. !important '}' a.es-button
  95. '{' font-size:
  96. 16px
  97. !important; display:inline-block
  98. !important; border-width:
  99. 15px
  100. 30px
  101. 15px
  102. 30px
  103. !important '}' .es-btn-fw
  104. '{' border-width:
  105. 10px
  106. 0px
  107. !important; text-align:center
  108. !important '}' .es-adaptive table, .es-btn-fw, .es-btn-fw-brdr, .es-left, .es-right
  109. '{' width:
  110. 100%!important '}' .es-content table, .es-header table, .es-footer table, .es-content, .es-footer, .es-header
  111. '{' width:
  112. 100%!important; max-width:
  113. 600px
  114. !important '}' .es-adapt-td
  115. '{' display:block
  116. !important; width:
  117. 100%!important '}' .adapt-img
  118. '{' width:
  119. 100%!important; height:auto
  120. !important '}' .es-m-p0
  121. '{' padding:
  122. 0px
  123. !important '}' .es-m-p0r
  124. '{' padding-right:
  125. 0px
  126. !important '}' .es-m-p0l
  127. '{' padding-left:
  128. 0px
  129. !important '}' .es-m-p0t
  130. '{' padding-top:
  131. 0px
  132. !important '}' .es-m-p0b
  133. '{' padding-bottom:
  134. 0!important '}' .es-m-p20b
  135. '{' padding-bottom:
  136. 20px
  137. !important '}' .es-mobile-hidden, .es-hidden
  138. '{' display:none
  139. !important '}' tr.es-desk-hidden, td.es-desk-hidden, table.es-desk-hidden
  140. '{' display:table-row
  141. !important; width:auto
  142. !important; overflow:visible
  143. !important; float:none
  144. !important; max-height:inherit
  145. !important; line-height:inherit
  146. !important '}' .es-desk-menu-hidden
  147. '{' display:table-cell
  148. !important '}' table.es-table-not-adapt, .esd-block-html table
  149. '{' width:auto
  150. !important '}' table.es-social
  151. '{' display:inline-block
  152. !important '}' table.es-social td
  153. '{' display:inline-block
  154. !important '}' '}'
  155. #outlook a
  156. '{'
  157. padding:
  158. 0;
  159. '}'
  160. .ExternalClass
  161. '{'
  162. width:
  163. 100%;
  164. '}'
  165. .ExternalClass,
  166. .ExternalClass p,
  167. .ExternalClass span,
  168. .ExternalClass font,
  169. .ExternalClass td,
  170. .ExternalClass div
  171. '{'
  172. line-height:
  173. 100%;
  174. '}'
  175. .es-button
  176. '{'
  177. mso-style-priority:
  178. 100!important;
  179. text-decoration:none
  180. !important;
  181. '}'
  182. a[x-apple-data-detectors]
  183. '{'
  184. color:inherit
  185. !important;
  186. text-decoration:none
  187. !important;
  188. font-size:inherit
  189. !important;
  190. font-family:inherit
  191. !important;
  192. font-weight:inherit
  193. !important;
  194. line-height:inherit
  195. !important;
  196. '}'
  197. .es-desk-hidden
  198. '{'
  199. display:none
  200. ;
  201. float:left
  202. ;
  203. overflow:hidden
  204. ;
  205. width:
  206. 0;
  207. max-height:
  208. 0;
  209. line-height:
  210. 0;
  211. mso-hide:all
  212. ;
  213. '}'
  214. </style>
  215. </head>
  216. <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">
  217. <div class="es-wrapper-color" style="background-color:#EEEEEE">
  218. <!--[if gte mso 9]>
  219. <v:background xmlns:v="urn:schemas-microsoft-com:vml" fill="t">
  220. <v:fill type="tile" color="#eeeeee"></v:fill>
  221. </v:background>
  222. <![endif]-->
  223. <table class="es-wrapper" width="100%" cellspacing="0" cellpadding="0"
  224. 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">
  225. <tr style="border-collapse:collapse">
  226. <td valign="top" style="padding:0;Margin:0">
  227. <table class="es-content" cellspacing="0" cellpadding="0" align="center"
  228. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;table-layout:fixed !important;width:100%">
  229. <tr style="border-collapse:collapse">
  230. <td align="center" style="padding:0;Margin:0">
  231. <table class="es-content-body"
  232. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;background-color:transparent;width:600px"
  233. cellspacing="0" cellpadding="0" align="center">
  234. <tr style="border-collapse:collapse">
  235. <td align="left"
  236. style="Margin:0;padding-left:10px;padding-right:10px;padding-top:15px;padding-bottom:15px">
  237. <!--[if mso]>
  238. <table style="width:580px" cellpadding="0" cellspacing="0">
  239. <tr>
  240. <td style="width:282px" valign="top"><![endif]-->
  241. <table class="es-left" cellspacing="0" cellpadding="0" align="left"
  242. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;float:left">
  243. <tr style="border-collapse:collapse">
  244. <td align="left" style="padding:0;Margin:0;width:282px">
  245. </td>
  246. </tr>
  247. <!--[if mso]></td></tr></table><![endif]--></td>
  248. </tr>
  249. </table>
  250. </td>
  251. </tr>
  252. </table>
  253. <table class="es-content" cellspacing="0" cellpadding="0" align="center"
  254. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;table-layout:fixed !important;width:100%">
  255. <tr style="border-collapse:collapse"></tr>
  256. <tr style="border-collapse:collapse">
  257. <td align="center" style="padding:0;Margin:0">
  258. <table class="es-header-body"
  259. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;background-color:#035ef7;width:600px"
  260. cellspacing="0" cellpadding="0" bgcolor="#044767" align="center">
  261. <tr style="border-collapse:collapse">
  262. <td align="left"
  263. style="Margin:0;padding-top:35px;padding-bottom:35px;padding-left:35px;padding-right:35px">
  264. <!--[if mso]>
  265. <table style="width:530px" cellpadding="0" cellspacing="0">
  266. <tr>
  267. <td style="width:340px" valign="top"><![endif]-->
  268. <table class="es-left" cellspacing="0" cellpadding="0" align="left"
  269. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;float:left">
  270. <tr style="border-collapse:collapse">
  271. <td class="es-m-p0r es-m-p20b" valign="top" align="center"
  272. style="padding:0;Margin:0;width:340px">
  273. <table width="100%" cellspacing="0" cellpadding="0"
  274. role="presentation"
  275. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
  276. <tr style="border-collapse:collapse">
  277. <td class="es-m-txt-c" align="left"
  278. style="padding:0;Margin:0"><h1
  279. 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">
  280. {0}</h1></td>
  281. </tr>
  282. </table>
  283. </td>
  284. </tr>
  285. </table>
  286. <!--[if mso]></td>
  287. <td style="width:20px"></td>
  288. <td style="width:170px" valign="top"><![endif]-->
  289. <table cellspacing="0" cellpadding="0" align="right"
  290. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
  291. <tr class="es-hidden" style="border-collapse:collapse">
  292. <td class="es-m-p20b" align="left"
  293. style="padding:0;Margin:0;width:170px">
  294. <table width="100%" cellspacing="0" cellpadding="0"
  295. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
  296. <tr style="border-collapse:collapse">
  297. <td style="padding:0;Margin:0">
  298. <table cellspacing="0" cellpadding="0"
  299. align="right"
  300. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
  301. <tr style="border-collapse:collapse">
  302. <td align="center"
  303. style="padding:0;Margin:0;display:none"></td>
  304. </tr>
  305. </table>
  306. </td>
  307. </tr>
  308. </table>
  309. </td>
  310. </tr>
  311. </table>
  312. <!--[if mso]></td></tr></table><![endif]--></td>
  313. </tr>
  314. </table>
  315. </td>
  316. </tr>
  317. </table>
  318. <table class="es-content" cellspacing="0" cellpadding="0" align="center"
  319. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;table-layout:fixed !important;width:100%">
  320. <tr style="border-collapse:collapse">
  321. <td align="center" style="padding:0;Margin:0">
  322. <table class="es-content-body" cellspacing="0" cellpadding="0" bgcolor="#ffffff"
  323. align="center"
  324. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;background-color:#FFFFFF;width:600px">
  325. <tr style="border-collapse:collapse">
  326. <td style="Margin:0;padding-bottom:35px;padding-left:35px;padding-right:35px;padding-top:40px;background-color:#F7F7F7"
  327. bgcolor="#f7f7f7" align="left">
  328. <table width="100%" cellspacing="0" cellpadding="0"
  329. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
  330. <tr style="border-collapse:collapse">
  331. <td valign="top" align="center"
  332. style="padding:0;Margin:0;width:530px">
  333. <table width="100%" cellspacing="0" cellpadding="0"
  334. role="presentation"
  335. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
  336. <tr style="border-collapse:collapse">
  337. <!-- https://s2.loli.net/2024/01/12/8zOfroSxk4YnA5N.png-->
  338. <td style="Margin:0;padding-top:20px;padding-bottom:25px;padding-left:35px;padding-right:35px;font-size:0"
  339. align="center"><a target="_blank"
  340. 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
  341. 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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"
  342. alt="icon"
  343. style="display:block;border:0;outline:none;text-decoration:none;-ms-interpolation-mode:bicubic"
  344. title="ship" width="150"></a></td>
  345. </tr>
  346. <tr style="border-collapse:collapse">
  347. <td align="center"
  348. style="padding:0;Margin:0;padding-bottom:15px">
  349. <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">
  350. {1}<br></h2>
  351. </td>
  352. </tr>
  353. <tr style="border-collapse:collapse">
  354. <td class="es-m-txt-l" align="left"
  355. style="padding:0;Margin:0;padding-top:20px">
  356. <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">
  357. {2},</h3></td>
  358. </tr>
  359. <tr style="border-collapse:collapse">
  360. <td align="left"
  361. style="padding:0;Margin:0;padding-bottom:10px;padding-top:15px">
  362. <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">
  363. {3}</p>
  364. <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">
  365. {12}</p>
  366. </td>
  367. </tr>
  368. <tr>
  369. </tr>
  370. </table>
  371. </td>
  372. </tr>
  373. </table>
  374. </td>
  375. </tr>
  376. </table>
  377. </td>
  378. </tr>
  379. </table>
  380. <table class="es-content" cellspacing="0" cellpadding="0" align="center"
  381. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;table-layout:fixed !important;width:100%">
  382. <tr style="border-collapse:collapse">
  383. <td align="center" style="padding:0;Margin:0">
  384. <table class="es-content-body" cellspacing="0" cellpadding="0" bgcolor="#ffffff"
  385. align="center"
  386. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;background-color:#FFFFFF;width:600px">
  387. <tr style="border-collapse:collapse">
  388. <td align="left"
  389. style="padding:0;Margin:0;padding-top:20px;padding-left:35px;padding-right:35px">
  390. <table width="100%" cellspacing="0" cellpadding="0"
  391. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
  392. <tr style="border-collapse:collapse">
  393. <td valign="top" align="center"
  394. style="padding:0;Margin:0;width:530px">
  395. <table width="100%" cellspacing="0" cellpadding="0"
  396. role="presentation"
  397. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
  398. <tr style="border-collapse:collapse">
  399. <td bgcolor="#eeeeee" align="left"
  400. style="Margin:0;padding-top:10px;padding-bottom:10px;padding-left:10px;padding-right:10px">
  401. <table style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;width:500px"
  402. class="cke_show_border"
  403. cellspacing="1" cellpadding="1"
  404. border="0" align="left"
  405. role="presentation">
  406. <tr style="border-collapse:collapse">
  407. <td width="80%"
  408. style="padding:0;Margin:0"><h4
  409. style="Margin:0;line-height:120%;mso-line-height-rule:exactly;font-family:\'open sans\', \'helvetica neue\', helvetica, arial, sans-serif">
  410. {4}</h4></td>
  411. <td width="20%"
  412. style="padding:0;Margin:0"><h4
  413. style="Margin:0;line-height:120%;mso-line-height-rule:exactly;font-family:\'open sans\', \'helvetica neue\', helvetica, arial, sans-serif">
  414. <br></h4></td>
  415. </tr>
  416. </table>
  417. </td>
  418. </tr>
  419. </table>
  420. </td>
  421. </tr>
  422. </table>
  423. </td>
  424. </tr>
  425. <tr style="border-collapse:collapse">
  426. <td align="left"
  427. style="padding:0;Margin:0;padding-left:35px;padding-right:35px">
  428. <table width="100%" cellspacing="0" cellpadding="0"
  429. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
  430. <tr style="border-collapse:collapse">
  431. <td valign="top" align="center"
  432. style="padding:0;Margin:0;width:530px">
  433. <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"
  434. width="100%" cellspacing="0" cellpadding="0"
  435. role="presentation">
  436. <tr style="border-collapse:collapse">
  437. <td align="center"
  438. style="Margin:0;padding-top:10px;padding-bottom:10px;padding-left:10px;padding-right:10px">
  439. <table style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;width:500px"
  440. class="cke_show_border"
  441. cellspacing="1" cellpadding="1"
  442. border="0" align="left"
  443. role="presentation">
  444. <tr style="border-collapse:collapse">
  445. <td style="padding:5px 10px 5px 0;Margin:0"
  446. width="80%" align="left"><p
  447. 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">
  448. {5}</p>
  449. </td>
  450. <td style="padding:5px 0;Margin:0"
  451. width="20%" align="left"><p
  452. 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">
  453. {6}</p></td>
  454. </tr>
  455. <tr>
  456. <td style="padding:5px 10px 5px 0;Margin:0"
  457. width="80%" align="left"><p
  458. 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">
  459. {7}</p></td>
  460. <td style="padding:5px 0;Margin:0"
  461. width="20%" align="left"><p
  462. 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">
  463. {8}</p></td>
  464. </tr>
  465. <tr>
  466. <td style="padding:5px 10px 5px 0;Margin:0"
  467. width="80%" align="left"><p
  468. 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">
  469. {9}</p></td>
  470. <td style="padding:5px 0;Margin:0"
  471. width="20%" align="left"><p
  472. 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">
  473. {10}</p></td>
  474. </tr>
  475. </table>
  476. </td>
  477. </tr>
  478. </table>
  479. </td>
  480. </tr>
  481. </table>
  482. </td>
  483. </tr>
  484. <tr style="border-collapse:collapse">
  485. <td align="left"
  486. style="padding:0;Margin:0;padding-top:20px;padding-left:35px;padding-right:35px">
  487. <table width="100%" cellspacing="0" cellpadding="0"
  488. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
  489. <tr style="border-collapse:collapse">
  490. <td valign="top" align="center"
  491. style="padding:0;Margin:0;width:530px">
  492. <table width="100%" cellspacing="0" cellpadding="0"
  493. role="presentation"
  494. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
  495. <tr style="border-collapse:collapse">
  496. <td bgcolor="#eeeeee" align="left"
  497. style="Margin:0;padding-top:10px;padding-bottom:10px;padding-left:10px;padding-right:10px">
  498. <table style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;width:500px"
  499. class="cke_show_border"
  500. cellspacing="1" cellpadding="1"
  501. border="0" align="left"
  502. role="presentation">
  503. <tr style="border-collapse:collapse">
  504. <td width="80%"
  505. style="padding:0;Margin:0"><h6
  506. style="Margin:0;line-height:120%;mso-line-height-rule:exactly;font-family:\'open sans\', \'helvetica neue\', helvetica, arial, sans-serif">
  507. {11}</h6></td>
  508. </tr>
  509. </table>
  510. </td>
  511. </tr>
  512. </table>
  513. </td>
  514. </tr>
  515. </table>
  516. </td>
  517. </tr>
  518. </table>
  519. </td>
  520. </tr>
  521. </table>
  522. <table class="es-footer" cellspacing="0" cellpadding="0" align="center"
  523. 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">
  524. <tr style="border-collapse:collapse">
  525. <td align="center" style="padding:0;Margin:0">
  526. <table class="es-footer-body" cellspacing="0" cellpadding="0" align="center"
  527. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;background-color:#FFFFFF;width:600px">
  528. <tr style="border-collapse:collapse">
  529. <td align="left"
  530. style="Margin:0;padding-top:35px;padding-left:35px;padding-right:35px;padding-bottom:40px">
  531. <table width="100%" cellspacing="0" cellpadding="0"
  532. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
  533. <tr style="border-collapse:collapse">
  534. <td valign="top" align="center"
  535. style="padding:0;Margin:0;width:530px">
  536. </td>
  537. </tr>
  538. </table>
  539. </td>
  540. </tr>
  541. </table>
  542. </td>
  543. </tr>
  544. </table>
  545. <table class="es-content" cellspacing="0" cellpadding="0" align="center"
  546. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;table-layout:fixed !important;width:100%">
  547. <tr style="border-collapse:collapse">
  548. <td align="center" style="padding:0;Margin:0">
  549. <table class="es-content-body"
  550. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;background-color:transparent;width:600px"
  551. cellspacing="0" cellpadding="0" align="center">
  552. <tr style="border-collapse:collapse">
  553. <td align="left"
  554. style="Margin:0;padding-left:20px;padding-right:20px;padding-top:30px;padding-bottom:30px">
  555. <table width="100%" cellspacing="0" cellpadding="0"
  556. style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
  557. <tr style="border-collapse:collapse">
  558. <td valign="top" align="center"
  559. style="padding:0;Margin:0;width:560px">
  560. </td>
  561. </tr>
  562. </table>
  563. </td>
  564. </tr>
  565. </table>
  566. </td>
  567. </tr>
  568. </table>
  569. </td>
  570. </tr>
  571. </table>
  572. </div>
  573. </body>
  574. </html>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/323226
推荐阅读
相关标签
  

闽ICP备14008679号