Parcourir la source

fix: 发件人获取失败问题修复

chenjianhua il y a 6 mois
Parent
commit
b31d481732

+ 2 - 2
service-base/src/main/java/com/simuwang/base/common/util/EmailUtil.java

@@ -298,7 +298,7 @@ public class EmailUtil {
         return props;
     }
 
-    public static void senEmail(MailboxInfoDTO mailboxInfoDTO, String emails, File file,String htmlText,String host) throws Exception {
+    public static void senEmail(MailboxInfoDTO mailboxInfoDTO, String emails, File file,String htmlText,String host,String emailTitle) throws Exception {
         logger.info("send email begin .........");
         // 根据Session 构建邮件信息
         MimeMessage message = new MimeMessage(getSession(mailboxInfoDTO));
@@ -315,7 +315,7 @@ public class EmailUtil {
         message.setFrom(from);
         message.setRecipients(Message.RecipientType.TO, toArr);
         // 邮件主题
-        message.setSubject("产品净值补发");
+        message.setSubject(emailTitle);
         // 邮件容器
         MimeMultipart mimeMultiPart = new MimeMultipart();
         // 设置HTML

+ 10 - 4
service-daq/src/main/java/com/simuwang/daq/service/EmailParseService.java

@@ -900,19 +900,25 @@ public class EmailParseService {
 
     private String getSenderEmail(Address[] senderAddress) {
         if (senderAddress == null || senderAddress.length == 0) {
+            log.info("发件人获取失败=============================");
             return null;
         }
         // 此时的address是含有编码(MIME编码方式)后的文本和实际的邮件地址
-        String address = senderAddress[0].toString();
-
+        String address = "";
+        for(Address from : senderAddress){
+            if(StringUtil.isNotEmpty(from.toString())){
+                address = from.toString();
+                break;
+            }
+        }
+        log.info("发件人地址:"+address+"========================");
         // 正则表达式匹配邮件地址
         Pattern pattern = Pattern.compile("<(\\S+)>");
-
         Matcher matcher = pattern.matcher(address);
         if (matcher.find()) {
             return matcher.group(1);
         }
-        return null;
+        return address;
     }
 
     public List<NameValueVO> searchEmailCount(DataboardQuery databoardQuery) {

+ 2 - 1
service-manage/src/main/java/com/simuwang/manage/service/impl/CompanyEmailConfigServiceImpl.java

@@ -166,7 +166,8 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
                 MailboxInfoDTO dto = getFromEmailInfo();
                 // "<p>您好,附件为产品的数据未发送到最新,麻烦尽快发送缺失的数据。若是产品清算或者有其他原因不再发送数据,还请将产品的清算日期或者不再发送数据的原因发送给我们,非常感谢~\n</p>";
                 String htmlText = sysConfigMapper.selectConfigByKey("deletion_email_body");
-                EmailUtil.senEmail(dto,emails,file,htmlText,sysConfigMapper.selectConfigByKey("email.host")==null?"":sysConfigMapper.selectConfigByKey("email.host"));
+                String emailTitle = sysConfigMapper.selectConfigByKey("deletion_email_title");
+                EmailUtil.senEmail(dto,emails,file,htmlText,sysConfigMapper.selectConfigByKey("email.host")==null?"":sysConfigMapper.selectConfigByKey("email.host"),emailTitle);
                 //发送成功之后修改数据为已发送
                 deletionInfoMapper.updateSendStatusByFundId(fundIdList);
                 //写入发送历史