From 56d9f6a0b1ecfce70da391d406fcc92274cc1b03 Mon Sep 17 00:00:00 2001
From: xinyb <574600396@qq.com>
Date: 星期六, 28 九月 2024 17:31:26 +0800
Subject: [PATCH] CRM邮箱收件和发件调整

---
 src/com/yc/crm/mail/service/MailServiceImpl.java |   38 +++++++++++++++++++++++++++++---------
 1 files changed, 29 insertions(+), 9 deletions(-)

diff --git a/src/com/yc/crm/mail/service/MailServiceImpl.java b/src/com/yc/crm/mail/service/MailServiceImpl.java
index 05c828e..439a8da 100644
--- a/src/com/yc/crm/mail/service/MailServiceImpl.java
+++ b/src/com/yc/crm/mail/service/MailServiceImpl.java
@@ -2,11 +2,14 @@
 
 import com.sun.mail.imap.IMAPBodyPart;
 import com.sun.mail.imap.IMAPStore;
+import com.yc.action.grid.GridUtils;
+import com.yc.crm.mail.action.MailPush;
 import com.yc.crm.mail.entity.FoundationEntity;
 import com.yc.crm.mail.entity.MailFileEntity;
 import com.yc.crm.mail.entity.T482102Entity;
 import com.yc.crm.mail.entity.t482101HEntity;
 import com.yc.entity.attachment.AttachmentEntity;
+import com.yc.factory.FactoryBean;
 import com.yc.service.BaseService;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -139,7 +142,11 @@
             properties.setProperty("mail.smtp.ssl.enable", emailEntity.isSmtpSSL() + "");// // 璁剧疆鍚敤SSL鍔犲瘑
             properties.setProperty("mail.smtp.host", emailEntity.getSmtpHost());
             properties.setProperty("mail.smtp.port", emailEntity.getSmtpPort() + "");
-
+            //Could not connect to SMTP host: smtp.qq.com, port: 465, response: -1 by danaus 2024-09-23 11:01
+            // properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
+            // MailSSLSocketFactory sf = new MailSSLSocketFactory("TLSv1.2");
+            // properties.put("mail.smtp.ssl.socketFactory", sf);
+            // properties.setProperty("mail.smtp.ssl.protocols", "TLSv1.2");
 //            properties.setProperty("mail.smtp.starttls.enable", "true");//// SMTP 鍗忚璁剧疆 STARTTLS  寮�鍚痶ls
 //            properties.setProperty("mail.smtp.socketFactory.port", emailEntity.getSmtpPort() + "");
 
@@ -271,6 +278,7 @@
      * @throws MessagingException
      * @throws IOException
      */
+    @Override
     public void setMailContent(Message[] messages, T482102Entity email, FoundationEntity foundation) throws
             Exception {
         try {
@@ -342,7 +350,7 @@
                         List<MailFileEntity.MailBodyPart> part = new ArrayList<>();
                         String unId = UUID.randomUUID().toString().toUpperCase();
                         StringBuilder attachment = new StringBuilder();
-                        result = getTextFromMimeMultipart((MimeMultipart) m.getContent(), plainText, part, unId, attachment);
+                        result = getTextFromMimeMultipart((MimeMultipart) m.getContent(), plainText, part, unId, attachment, foundation.getDbId());
                         mailFile.setPart(part);
                         mailFile.setUnId(unId);//鐢熸垚uuid
                         mail.setMailFile(mailFile);//闄勪欢娣诲姞鍒伴噷闈�
@@ -390,8 +398,13 @@
                 }
             }
             if (t482101HEntityList.size() > 0) {
-                mailIfc.saveReceivingMailList(t482101HEntityList);//淇濆瓨
+                String docCodeList = mailIfc.saveReceivingMailList(t482101HEntityList);//淇濆瓨
                 mailAccountIfc.updateEmailTime(email.getAccountId());//鏇存柊涓�娆¢厤缃�
+                //鍙戦�侀�氱煡(鏋佸厜鍜寃ebscoket)
+                //鍙栫敤鎴风殑鎵嬫満鍙�
+                BaseService baseService = (BaseService) FactoryBean.getBean("BaseService");
+                String tel = baseService.getJdbcTemplate().queryForObject("select tel  from    _sys_LoginUser where usercode=" + GridUtils.prossSqlParm(foundation.getUserCode()), String.class);
+                MailPush.pushEmailInfo(t482101HEntityList, docCodeList, foundation.getDbId(), tel);
             }
         } catch (Exception e) {
             throw e;
@@ -407,7 +420,7 @@
      */
     // 杈呭姪鏂规硶锛岀敤浜庨�掑綊鑾峰彇绾枃鏈偖浠跺唴瀹�
     private String getTextFromMimeMultipart(MimeMultipart mimeMultipart, StringBuilder
-            plainText, List<MailFileEntity.MailBodyPart> part, String unId, StringBuilder attachment) throws Exception {
+            plainText, List<MailFileEntity.MailBodyPart> part, String unId, StringBuilder attachment, Integer dbId) throws Exception {
         int count = mimeMultipart.getCount();
         if (count == 0) {
             throw new MessagingException("Multipart with no body parts");
@@ -424,10 +437,17 @@
                     result.append(bodyPart.getContent());
                 }
             }
-        } else {
+            if (StringUtils.isBlank(result.toString())) {//娌tml鏃跺�欐妸绾枃鏈祴鍊艰繃鍘�
+                result.append(plainText);
+            }
+        }
+//        else {
             for (int i = 0; i < count; i++) {
                 BodyPart bodyPart = mimeMultipart.getBodyPart(i);
-                if (bodyPart.isMimeType("image/*")) {//鍥剧墖
+//                if (bodyPart.isMimeType("text/html")) {//杩欎釜鏄幏鍙杊tml鏍煎紡
+//                    result.append(bodyPart.getContent());
+//                }else
+                    if (bodyPart.isMimeType("image/*")) {//鍥剧墖
                     MailFileEntity.MailBodyPart p = new MailFileEntity.MailBodyPart();
                     String fileName = "xxx.jpg";
                     if (StringUtils.isNotBlank(bodyPart.getFileName())) {
@@ -453,7 +473,7 @@
                     String nextResult = result.toString();
                     if (nextResult.contains(cId)) {//鏈夊祵濂楀唴瀹�
                         //鏇挎崲
-                        nextResult = nextResult.replace("cid:" + cId + "", shoppingImageServer + "/uploads/email/82/482101/" + unId + "@p@" + p.getPhysicalFile());
+                        nextResult = nextResult.replace("cid:" + cId + "", shoppingImageServer + "/uploads/email/" + dbId + "/482101/" + unId + "@p@" + p.getPhysicalFile());
                         result.setLength(0);//娓呯┖鍏�
                         result.append(nextResult);
                     }
@@ -475,10 +495,10 @@
                     attachment.append(";" + fieldId);
                     part.add(p);
                 } else if (bodyPart.isMimeType("multipart/*")) {
-                    result.append(getTextFromMimeMultipart((MimeMultipart) bodyPart.getContent(), plainText, part, unId, attachment));
+                    result.append(getTextFromMimeMultipart((MimeMultipart) bodyPart.getContent(), plainText, part, unId, attachment, dbId));
                 }
             }
-        }
+//        }
         return result.toString();
     }
 

--
Gitblit v1.8.0