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