Bladeren bron

云帆bug修复

24282 2 jaren geleden
bovenliggende
commit
3a2ac66d20
100 gewijzigde bestanden met toevoegingen van 2121 en 187 verwijderingen
  1. 56 0
      bladex-saas-project/new-mail/pom.xml
  2. 2 2
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/controller/CallbackController.java
  3. 108 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/controller/TestController.java
  4. 37 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/entity/MailboxListMessagesDto.java
  5. 1 1
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/entity/Message.java
  6. 122 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/test/FileDetailed.java
  7. 535 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/test/IMAPReceiveMailTest.java
  8. 106 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/test/JavaMailDetailed.java
  9. 90 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/test/MailAttachment.java
  10. 207 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/test/NewTest.java
  11. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/AddAccountAlias.java
  12. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/CreateAccount.java
  13. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/DeleteAccountAlias.java
  14. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/DeleteAccountSim.java
  15. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/GetAccount.java
  16. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/GetAccountAliasList.java
  17. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/RecoverAccount.java
  18. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/SuspendAccount.java
  19. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/UpdateAccount.java
  20. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/UpdateAccountLoginPerm.java
  21. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/UpdatePassword.java
  22. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/address/UpdateAccountRank.java
  23. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/archive/AddArchiveMailAccount.java
  24. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/archive/DeleteArchiveMailAccount.java
  25. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/archive/ExistArchiveMailAccount.java
  26. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/autobackup/GetAutoBackupList.java
  27. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/domain/GetDomain.java
  28. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/login/GetClientLoginLogs.java
  29. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/login/GetWebLoginLogs.java
  30. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mail/GetReceivedMailLogs.java
  31. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mail/GetSentMailLogs.java
  32. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mailaccount/ClearAutoForward.java
  33. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mailaccount/GetAutoForward.java
  34. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mailaccount/GetMailAccount.java
  35. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mailaccount/OpenAutoForward.java
  36. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mailaccount/UpdateRsLimit.java
  37. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mailbox/GetUnreadMsg.java
  38. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mailbox/ListMessages.java
  39. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/maillist/AddMaillistForwardList.java
  40. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/maillist/CreateMaillist.java
  41. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/maillist/DeleteMaillist.java
  42. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/maillist/GetMaillist.java
  43. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/maillist/RemoveMaillistForwardList.java
  44. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/maillist/UpdateMaillist.java
  45. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mobile/AddMobile.java
  46. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mobile/BindSms.java
  47. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mobile/DeleteMobile.java
  48. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mobile/GetMobile.java
  49. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mobile/GetSmsSettings.java
  50. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mobile/UnBindSms.java
  51. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/pub/CreateGroup.java
  52. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/pub/CreatePubAddress.java
  53. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/pub/DeletePubAddress.java
  54. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/pub/GetGroupList.java
  55. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/pub/GetPubAddressList.java
  56. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/pub/UpdatePubAddress.java
  57. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/push/AddPushMailSubscribe.java
  58. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/push/DeletePushMailSubscribe.java
  59. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/unit/CreateUnit.java
  60. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/unit/DeleteUnit.java
  61. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/unit/GetAccountList.java
  62. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/unit/GetUnit.java
  63. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/unit/GetUnitList.java
  64. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/unit/MoveUnit.java
  65. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/unit/UpdateUnit.java
  66. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/unit/UpdateUnitRank.java
  67. 2 2
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/tool/CreateKeyPair.java
  68. 2 2
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/tool/Login.java
  69. 2 2
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/tool/LoginFolder.java
  70. 2 2
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/tool/LoginMid.java
  71. 3 3
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/tool/Unread.java
  72. 1 1
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/rsa/HttpPost.java
  73. 1 1
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/rsa/RSASignatureToQiye.java
  74. 1 1
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/rsa/RSATool.java
  75. 1 2
      bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/rsa/Utils.java
  76. 43 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/config/TaskPoolConfig.java
  77. 18 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/controller/MailAddressController.java
  78. 18 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/controller/MailAttachmentController.java
  79. 18 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/controller/MailFolderController.java
  80. 18 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/controller/MailInfoController.java
  81. 18 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/controller/MailMessageController.java
  82. 19 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/controller/MailboxController.java
  83. 52 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/entity/MailAddress.java
  84. 42 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/entity/MailAttachment.java
  85. 41 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/entity/MailFolder.java
  86. 88 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/entity/MailInfo.java
  87. 51 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/entity/MailMessage.java
  88. 88 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/entity/Mailbox.java
  89. 39 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/enums/MailFlagEnum.java
  90. 16 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailAddressMapper.java
  91. 5 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailAddressMapper.xml
  92. 16 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailAttachmentMapper.java
  93. 5 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailAttachmentMapper.xml
  94. 16 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailFolderMapper.java
  95. 5 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailFolderMapper.xml
  96. 16 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailInfoMapper.java
  97. 5 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailInfoMapper.xml
  98. 16 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailMessageMapper.java
  99. 5 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailMessageMapper.xml
  100. 16 0
      bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailboxMapper.java

+ 56 - 0
bladex-saas-project/new-mail/pom.xml

@@ -40,6 +40,62 @@
             <artifactId>blade-core-cloud</artifactId>
         </dependency>
 
+<!--        <dependency>-->
+<!--            <groupId>com.sun.mail</groupId>-->
+<!--            <artifactId>jakarta.mail</artifactId>-->
+<!--        </dependency>-->
+
+        <!--        <dependency>-->
+        <!--            <groupId>org.apache.commons</groupId>-->
+        <!--            <artifactId>commons-email</artifactId>-->
+        <!--            <version>1.5</version>-->
+        <!--        </dependency>-->
+
+
+        <!--        <dependency>-->
+        <!--            <groupId>org.springframework.boot</groupId>-->
+        <!--            <artifactId>spring-boot-starter-mail</artifactId>-->
+        <!--            <version>3.0.4</version>-->
+        <!--        </dependency>-->
+
+
+
+        <dependency>
+            <groupId>jakarta.activation</groupId>
+            <artifactId>jakarta.activation-api</artifactId>
+            <version>2.1.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.eclipse.angus</groupId>
+            <artifactId>jakarta.mail</artifactId>
+            <version>1.0.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.jodd</groupId>
+            <artifactId>jodd-util</artifactId>
+            <version>6.0.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.sun.mail</groupId>
+            <artifactId>jakarta.mail</artifactId>
+            <version>1.6.7</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.eclipse.angus</groupId>
+            <artifactId>jakarta.mail</artifactId>
+            <version>2.0.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-resource-api</artifactId>
+            <version>2.8.2.RELEASE</version>
+        </dependency>
+
     </dependencies>
 
     <build>

+ 2 - 2
bladex-saas-project/new-mail/src/main/java/com/fjhx/controller/CallbackController.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/controller/CallbackController.java

@@ -1,7 +1,7 @@
-package com.fjhx.controller;
+package com.fjhx.back.controller;
 
 import com.alibaba.fastjson.JSON;
-import com.fjhx.entity.Message;
+import com.fjhx.back.entity.Message;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;

+ 108 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/back/controller/TestController.java

@@ -0,0 +1,108 @@
+package com.fjhx.back.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.RSATool;
+import com.fjhx.back.entity.MailboxListMessagesDto;
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.net.URLEncoder;
+import java.util.Collections;
+
+@Slf4j
+@RestController
+@RequestMapping("/test")
+public class TestController {
+
+    private static final String PRI_KEY =
+            "30820275020100300d06092a864886f70d01010105000482025f3082025b02010002818100919453a879ad6b497f99" +
+            "739c3ab66c8cfa2eaf89c963985c946529da3c968b11390155cddbe943387a5665f77e849c3f07eeb12852895b26bc29276096" +
+            "03db6eb5ddd62968a7ce8e1fdfde5bce77b5262eb3aa67cb26e61426df497367b36e344be70a6404ce3d91e6a82ff5f4e13bfdb" +
+            "c3ebedd827c6ccf3d1767c239087ffb02030100010281800d378838dd832f2067234969bfb2dc3c1862b0b133c58509b2b7548b" +
+            "69c0c93371177bf0caac6cdbedcf76467808161f6adaf2de944fc024ce24765cc081ed2406eef1c7c87509584ca3c1926af7d26" +
+            "d0f7d3c18d51368100c09fb74cef3402d23c5e223a2e4ad6ae0c82a10eef8e5dc0b8dc54c5066b54dcabba30cb9b5d1d1024100" +
+            "c85b5b91e0a0e41f9c5ec2f1a038faa4409980402f5f439adeb729450ebd39841d1244031ad78e3a28cb50a7c66b65840f79bf0" +
+            "5190f9235efce8aa450d8c8cf024100ba027dbe9688c63ba896f46d2b4f1aac8758659cd8435380c38d41b4e9b22d717450dd07" +
+            "ceac10db63e52ec4cce2e9f7d99c16bb2ae89b6a932ea0b19f7349150240431161dbb927e2753a70f62cd00782cf4cd89577e6e3" +
+            "aacbc2d5e938b6b05cfa7e88c8bf8952b2c781345df16b9833c93b2cf3e68ef7096888b7c8ed2c2b053d0240378d88ea83e0e37b" +
+            "6bd571b8ad079a0acefd4a93b64f1d4046a70869b4a5ff46741bb6779f74ea2febbcc5e406e0fa498897427eb1c8f8a9b2bd6946" +
+            "c33d562502400d0145f83ca2e2d2157c190d96c73a2476d8cc0bf24970d479db0dac690c74c8e60a57c13e7bf2d088234e39a9a7" +
+            "e91df09ef287dc8e259296b346762fe3387d";
+
+    /**
+     * 获取邮件信息
+     */
+    @SneakyThrows
+    @GetMapping("/mailbox/listMessages")
+    public R mailboxListMessages(MailboxListMessagesDto dto) {
+
+        String time = System.currentTimeMillis() + "";
+
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("fids", Collections.singletonList(dto.getFid()));
+        jsonObject.put("order", "receivedDate");
+        jsonObject.put("desc", true);
+        jsonObject.put("start", (dto.getPageNum() - 1) * dto.getPageSize());
+        jsonObject.put("limit", dto.getPageSize());
+        jsonObject.put("returnTotal", true);
+        String params = jsonObject.toString();
+
+        String url = "https://apihz.qiye.163.com/qiyeservice/api/mailbox/listMessages";
+        String src = "account_name=" + dto.getAccountName() + "&domain=" + dto.getDomain() + "&params="
+                + params + "&product=" + dto.getProduct() + "&time=" + time;
+        String sign = RSASignatureToQiye.generateSigature(PRI_KEY, src);
+
+        url = url + "?" + "account_name=" + dto.getAccountName() + "&domain="
+                + dto.getDomain() + "&params=" + URLEncoder.encode(params, "utf8") +
+                "&product=" + dto.getProduct() + "&sign=" + sign + "&time=" + time;
+
+        HttpPost hp = new HttpPost();
+        String result = hp.post(url);
+
+        return R.success(JSON.parseObject(result));
+    }
+
+    /**
+     * 获取未读邮件数量
+     */
+    @GetMapping("/mailbox/getUnreadMsg")
+    public R mailboxGetUnreadMsg(MailboxListMessagesDto dto) {
+
+        String time = System.currentTimeMillis() + "";
+        String url = "https://apihz.qiye.163.com/qiyeservice/api/mailbox/getUnreadMsg";
+        String sign = "account_name=" + dto.getAccountName() + "&domain=" + dto.getDomain() + "&fid=" + dto.getFid()
+                + "&product=" + dto.getProduct() + "&time=" + time;
+        sign = RSASignatureToQiye.generateSigature(PRI_KEY, sign);
+
+        url = url + "?" + "account_name=" + dto.getAccountName() + "&domain="
+                + dto.getDomain() + "&fid=" + dto.getFid() + "&product="
+                + dto.getProduct() + "&sign=" + sign + "&time=" + time;
+
+        HttpPost hp = new HttpPost();
+        String result = hp.post(url);
+        return R.success(JSON.parseObject(result));
+    }
+
+    /**
+     * 单点登录地址
+     */
+    @GetMapping("/mailbox/sso")
+    public R detail(MailboxListMessagesDto dto) {
+        String time = System.currentTimeMillis() + "";
+        String src = dto.getAccountName() + dto.getDomain() + time;
+        RSATool rsa = new RSATool();
+        String enc = rsa.generateSHA1withRSASigature(src, PRI_KEY);
+        String url = "https://entry.qiye.163.com/domain/oa/Entry?domain=" + dto.getDomain() +
+                "&account_name=" + dto.getAccountName() + "&time=" + time + "&enc=" + enc + "&language=0&mid=" + dto.getMid();
+        return R.success(url);
+    }
+
+
+}

+ 37 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/back/entity/MailboxListMessagesDto.java

@@ -0,0 +1,37 @@
+package com.fjhx.back.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+import org.springblade.core.mp.base.BaseSelectDto;
+
+@Getter
+@Setter
+public class MailboxListMessagesDto extends BaseSelectDto {
+
+    /**
+     * 账号名
+     */
+    private String accountName;
+
+    /**
+     * 企业邮箱注册域名,用于标识客户。
+     */
+    private String domain;
+
+    /**
+     * 由网易提供给客户,企业标识
+     */
+    private String product;
+
+    /**
+     * 文件夹类型
+     * 1-收件箱; 2-草稿箱; 3-已发送; 4-已删除; 5-垃圾邮件
+     */
+    private Integer fid;
+
+    /**
+     * 邮件id
+     */
+    private String mid;
+
+}

+ 1 - 1
bladex-saas-project/new-mail/src/main/java/com/fjhx/entity/Message.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/entity/Message.java

@@ -1,4 +1,4 @@
-package com.fjhx.entity;
+package com.fjhx.back.entity;
 
 import com.alibaba.fastjson.annotation.JSONField;
 import lombok.Getter;

+ 122 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/back/test/FileDetailed.java

@@ -0,0 +1,122 @@
+package com.fjhx.back.test;
+
+import org.apache.commons.lang3.StringUtils;
+
+import java.io.InputStream;
+import java.io.Serializable;
+import java.util.Optional;
+
+/**
+ * 文件信息
+ */
+public class FileDetailed implements Serializable {
+
+    private static final long serialVersionUID = 4837151937838229241L;
+
+    private String cid;
+
+    //真实文件名称
+    private String realName;
+
+    //解码前的文件名称
+    private String decodePreName;
+
+    //临时文件名称
+    private String temName;
+
+    //保存路径
+    private String path;
+
+    //后缀
+    private String suffix;
+
+    //大小
+    private Long size;
+
+    private InputStream inputStream;
+
+    public FileDetailed() {
+
+    }
+
+    public FileDetailed(String realName, String temName, InputStream inputStream) {
+        this.realName = realName;
+        this.temName = temName;
+        this.inputStream = inputStream;
+    }
+
+    public FileDetailed(String realName, String temName, String path, Long size) {
+        this.realName = realName;
+        this.temName = temName;
+        this.path = path;
+        this.size = Optional.ofNullable(size).orElse(0L);
+        //后缀
+        if (StringUtils.isNotBlank(path)) {
+            this.suffix = path.substring(path.lastIndexOf("."));
+        }
+    }
+
+    public String getCid() {
+        return cid;
+    }
+
+    public void setCid(String cid) {
+        this.cid = cid;
+    }
+
+    public String getRealName() {
+        return realName;
+    }
+
+    public void setRealName(String realName) {
+        this.realName = realName;
+    }
+
+    public String getDecodePreName() {
+        return decodePreName;
+    }
+
+    public void setDecodePreName(String decodePreName) {
+        this.decodePreName = decodePreName;
+    }
+
+    public String getTemName() {
+        return temName;
+    }
+
+    public void setTemName(String temName) {
+        this.temName = temName;
+    }
+
+    public String getPath() {
+        return path;
+    }
+
+    public void setPath(String path) {
+        this.path = path;
+    }
+
+    public String getSuffix() {
+        return suffix;
+    }
+
+    public void setSuffix(String suffix) {
+        this.suffix = suffix;
+    }
+
+    public Long getSize() {
+        return size;
+    }
+
+    public void setSize(Long size) {
+        this.size = size;
+    }
+
+    public InputStream getInputStream() {
+        return inputStream;
+    }
+
+    public void setInputStream(InputStream inputStream) {
+        this.inputStream = inputStream;
+    }
+}

+ 535 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/back/test/IMAPReceiveMailTest.java

@@ -0,0 +1,535 @@
+package com.fjhx.back.test;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.extra.mail.Mail;
+import com.alibaba.fastjson.JSONObject;
+import com.fjhx.entity.Mailbox;
+import com.maxmind.geoip2.DatabaseReader;
+import com.sun.mail.imap.IMAPMessage;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.MapUtils;
+import org.apache.commons.lang3.ArrayUtils;
+import org.springblade.common.constant.RedisCacheKeyConstant;
+import org.springblade.common.enums.YesOrNoEnum;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtils;
+import org.springblade.core.tool.utils.id.IdUtils;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
+
+import javax.mail.*;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeUtility;
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Slf4j
+public class IMAPReceiveMailTest {
+
+    private static final String[] filterCharacterArr = {"unkonwn"};
+
+    public static void main(String[] args) throws Exception {
+        // 准备连接服务器的会话信息
+        Properties props = new Properties();
+        // props.setProperty("mail.store.protocol", "imap");
+        // props.setProperty("mail.imap.host", "imap.qiye.163.com");
+        // props.setProperty("mail.imap.port", "143");
+        props.setProperty("mail.imap.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
+        // props.setProperty("mail.store.protocol", "imap");
+        // props.setProperty("mail.imap.host", "imap.qq.com");
+        // props.setProperty("mail.imap.port", "993");
+        // props.setProperty("mail.imap.socketFactory.port", "993");
+
+        // 创建Session实例对象
+        Session session = Session.getInstance(props);
+
+        // 创建IMAP协议的Store对象
+        // Store store = session.getStore("imap");
+        Store store = session.getStore("imap");
+
+        // 连接邮件服务器
+        // store.connect("sale3@bridge-style.cc", "peQ8ztVZ6f8F2sp5");
+        store.connect("imap.qq.com", 993, "2428241269@qq.com", "kdypajdrwfhtdihb");
+
+        // 获得收件箱
+        Folder folder = store.getFolder("INBOX");
+        // 以读写模式打开收件箱
+        folder.open(Folder.READ_WRITE);
+
+
+        // while (true) {
+        Message[] messages = folder.getMessages();
+        System.out.println("messages[messages.length-1].getSubject() = " + messages[messages.length - 2].getSubject());
+        System.out.println("messages = " + messages.length);
+
+        Message message = messages[messages.length - 1];
+
+        Address[] from = message.getFrom();
+        for (Address address : from) {
+
+        }
+
+        Object content = message.getContent();
+
+
+        Enumeration<Header> allHeaders = message.getAllHeaders();
+        String[] header = message.getHeader("X-QQ-mid");
+        Thread.sleep(100);
+        // }
+
+
+        //
+        // // 关闭资源
+        // folder.close(false);
+        // store.close();
+    }
+//
+//
+//     private static void readMail(Message message) {
+//         try {
+//             List<Mail> data = new ArrayList<>();
+//
+//             // Part part = message;
+//             Part part = new MimeMessage((MimeMessage) message);
+//
+//             MimeMessage mimeMessage = (MimeMessage) message;
+//
+//             // 邮件消息ID
+//             String messageId = getMessageId(mimeMessage);
+//             // if (StringUtils.isBlank(messageId)) {
+//             //     continue;
+//             // }
+//
+//             // 发件人
+//             String fromId = getFrom(mimeMessage);
+//             // 收件人
+//             String toId = getMailAddress(mimeMessage, "to");
+//             // 抄送人
+//             String ccId = getMailAddress(mimeMessage, "cc");
+//             // 密送人
+//             String bccId = getMailAddress(mimeMessage, "bcc");
+//             // 标题
+//             String title = getSubject(mimeMessage);
+//
+//             // ----- 2021-11-04 屏蔽掉是为了解决密送邮件抓取不下来问题 -----
+//             // 判断发件人、收件人、抄送人、密送人是否包含当前操作的邮箱
+//             // String ids = fromId + "," + toId + "," + ccId + "," + bccId;
+//             // String[] idsArr = ids.split(",");
+//             // if (!StringUtils.equalsAnyIgnoreCase(mailBoxName, idsArr)) {
+//             //     continue;
+//             // }
+//
+//             // 文件夹ID
+//             String folderId = "0";
+//             // 先判断是否存在收件规则:发件人
+//             if (MapUtils.isNotEmpty(newestFolderIdMap)) {
+//                 folderId = newestFolderIdMap.getOrDefault(fromId, "0");
+//             }
+//             // 不存在则判断是否存在收件规则:发件域(如:@qq.com)
+//             if (MapUtils.isNotEmpty(newestFolderIdMap) && StringUtils.equals(folderId, "0")) {
+//                 String field = StringUtils.substring(fromId, fromId.indexOf("@"));
+//                 folderId = newestFolderIdMap.getOrDefault(field, "0");
+//             }
+//             // 不存在则判断是否存在收件规则:标题包含
+//             if (CollectionUtils.isNotEmpty(titleRules) && StringUtils.equals(folderId, "0")) {
+//                 List<String> ruleValues = titleRules.stream().map(MailRule::getRuleValue).collect(Collectors.toList());
+//                 Map<String, String> ruleValuesMap = titleRules.stream().collect(Collectors.toMap(MailRule::getRuleValue, MailRule::getFolderId, (key1, key2) -> key2));
+//                 String field = "";
+//                 for (String value : ruleValues) {
+//                     if (StringUtils.contains(title, value)) {
+//                         field = value;
+//                         break;
+//                     }
+//                 }
+//                 folderId = ruleValuesMap.getOrDefault(field, "0");
+//             }
+//             // 不存在继续则判断是否存在官方文件夹
+//             if (MapUtils.isNotEmpty(newestFolderIdMap) && StringUtils.equals(folderId, "0")) {
+//                 folderId = newestFolderIdMap.getOrDefault(folder, "0");
+//             }
+//
+//             JavaMailDetailed jd = new JavaMailDetailed();
+//             jd.setMessageId(messageId);
+//             jd.setUid(getUid(mimeMessage));
+//             jd.setSubject(title);
+//             jd.setSentDate(getSentDate(mimeMessage));
+//             // jd.setReplySign(getReplySign(mimeMessage));
+//             jd.setRead(isNew(mimeMessage));
+//             jd.setFrom(fromId);
+//             jd.setMailAddressTo(toId);
+//             jd.setMailAddressCC(ccId);
+//             jd.setMailAddressBCC(bccId);
+//             // 内容,获取一次就行,不需要放在structureMail
+//             jd.setBody(getBodyText(part));
+//             // ip
+//             jd.setIp(MailUtil.getMailIp(mimeMessage));
+//
+//             if (StringUtils.isNotBlank(jd.getIp())) {
+//                 try {
+//                     // 数据文件路径
+//                     if (Func.isEmpty(database) || Func.isEmpty(reader)) {
+//                         database = new File("/mnt/geoIp2/GeoIP2-City.mmdb");
+//                         reader = new DatabaseReader.Builder(database).build();
+//                     }
+//                     jd.setGeoIpMsg(GeoIP2Util.getGeographicalPosition(jd.getIp(), jd.getSentDate(), reader));
+//                 } catch (Exception e) {
+//                     e.printStackTrace();
+//                 }
+//             }
+//
+//             // 发送人地址
+//             if (StringUtils.equals(jd.getFrom(), mailBoxName)) {
+//                 List<Mail> list = structureMail(part, jd.getFrom(), folder, jd, box, now, folderId, null, allMailBoxMap, tenantId, allMailRulesMap);
+//                 if (CollectionUtils.isNotEmpty(list)) {
+//                     mails.addAll(list);
+//                     data.addAll(list);
+//                 }
+//             }
+//
+//             // key=文件夹-发送人-邮箱ID
+//             repeatMap.put(folder + ":" + jd.getFrom() + "-" + jd.getMessageId(), 1);
+//
+//             // 用于判断收件人、抄送人、密送人是否包含同一个账号
+//             boolean flag = false;
+//
+//             // 客户名称(公司名称)
+//             String customerName = "";
+//
+//             // 收信人地址
+//             // if (StringUtils.contains(jd.getMailAddressTo(), mailBoxName)) {
+//             // ----- 2021-11-04 屏蔽掉是为了解决密送邮件抓取不下来问题 -----
+//             List<Mail> list2 = structureMail(part, jd.getMailAddressTo(), folder, jd, box, now, folderId, repeatMap, allMailBoxMap, tenantId, allMailRulesMap);
+//             if (CollectionUtils.isNotEmpty(list2)) {
+//                 if (list2.size() == 1) {
+//                     customerName = list2.get(0).getCustomerName();
+//                 }
+//                 mails.addAll(list2);
+//                 data.addAll(list2);
+//             }
+//
+//             // 抄送人地址
+//             // if (!flag && StringUtils.contains(jd.getMailAddressCC(), mailBoxName)) {
+//             // ----- 2021-11-04 屏蔽掉是为了解决密送邮件抓取不下来问题 -----
+//             List<Mail> list3 = structureMail(part, jd.getMailAddressCC(), folder, jd, box, now, folderId, repeatMap, allMailBoxMap, tenantId, allMailRulesMap);
+//             if (CollectionUtils.isNotEmpty(list3)) {
+//                 mails.addAll(list3);
+//                 data.addAll(list3);
+//             }
+//             // }
+//
+//             // 暗抄人地址
+//             // if (!flag && StringUtils.contains(jd.getMailAddressBCC(), mailBoxName)) {
+//             // ----- 2021-11-04 屏蔽掉是为了解决密送邮件抓取不下来问题 -----
+//             List<Mail> list4 = structureMail(part, jd.getMailAddressBCC(), folder, jd, box, now, folderId, repeatMap, allMailBoxMap, tenantId, allMailRulesMap);
+//             if (CollectionUtils.isNotEmpty(list4)) {
+//                 mails.addAll(list4);
+//                 data.addAll(list4);
+//             }
+//             // }
+//
+//             // 上传文件、保存邮件数据
+//             if (CollectionUtils.isNotEmpty(data)) {
+//                 // 上传邮件附件到华为云
+//                 splitUploadFile(data);
+//
+//                 // 批量新增邮箱
+//                 int i = mailService.batchInsert(data, tenantId);
+//                 if (i > 0) {
+//                     // 异步插入邮件抓取通知
+//                     messageNoticeService.sendMailNotice(data);
+//                 }
+//             }
+//
+//             // 回填客户名称
+//             if (StringUtils.isNotEmpty(customerName)) {
+//                 for (Mail mail : mails) {
+//                     mail.setCustomerName(customerName);
+//                 }
+//             }
+//
+//         } catch (Exception e) {
+//             e.printStackTrace();
+//         }
+//     }
+//
+//
+//     /**
+//      * 获得此邮件的Message-ID
+//      */
+//     private static String getMessageId(MimeMessage mimeMessage) throws MessagingException {
+//         return mimeMessage.getMessageID();
+//     }
+//
+//     /**
+//      * 获得发件人的地址和姓名
+//      */
+//     private static String getFrom(MimeMessage mimeMessage) throws Exception {
+//         InternetAddress[] address = (InternetAddress[]) mimeMessage.getFrom();
+//         if (ArrayUtils.isEmpty(address)) {
+//             return "";
+//         }
+//         // 收件人地址
+//         String from = address[0].getAddress();
+//
+//         // 判断发件人是否包含过滤的字符
+//         boolean flag = false;
+//         for (String s : filterCharacterArr) {
+//             if (StringUtils.containsIgnoreCase(from, s)) {
+//                 flag = true;
+//                 break;
+//             }
+//         }
+//
+//         if (StringUtils.isBlank(from) || flag) {
+//             // 收件人姓名
+//             from = address[0].getPersonal();
+//             if (StringUtils.isBlank(from)) {
+//                 from = "";
+//             }
+//         }
+//         return StringUtils.lowerCase(from);
+//     }
+//
+//     /**
+//      * <p>获得邮件的收件人,抄送,和密送的地址和姓名,根据所传递的参数的不同<p>
+//      *
+//      * <p>"to"----收件人 "cc"---抄送人地址 "bcc"---密送人地址<p>
+//      */
+//     private static String getMailAddress(MimeMessage mimeMessage, String type) throws Exception {
+//         String addType = type.toUpperCase();
+//         InternetAddress[] address;
+//         HashSet<String> mailAddrSet = new HashSet<>();
+//         if (addType.equals("TO") || addType.equals("CC") || addType.equals("BCC")) {
+//             if (addType.equals("TO")) {
+//                 address = (InternetAddress[]) mimeMessage.getRecipients(Message.RecipientType.TO);
+//             } else if (addType.equals("CC")) {
+//                 address = (InternetAddress[]) mimeMessage.getRecipients(Message.RecipientType.CC);
+//             } else {
+//                 address = (InternetAddress[]) mimeMessage.getRecipients(Message.RecipientType.BCC);
+//             }
+//
+//             if (address != null) {
+//                 for (InternetAddress internetAddress : address) {
+//                     String emailAddr = internetAddress.getAddress();
+//                     if (emailAddr == null) {
+//                         emailAddr = "";
+//                     } else {
+//                         emailAddr = MimeUtility.decodeText(emailAddr);
+//                     }
+//                     // String personal = address[i].getPersonal();
+//                     // if (personal == null) {
+//                     //     personal = "";
+//                     // } else {
+//                     //     log.debug("转换之前的personal:{}", personal);
+//                     //     personal = MimeUtility.decodeText(personal);
+//                     //     log.debug("转换之后的personal:{}", personal);
+//                     // }
+//                     // String compositeto = personal + "<" + emailAddr + ">";
+//                     // log.debug("完整的邮件地址:{}", compositeto);
+//                     //
+//                     // mailAddr += "," + emailAddr;
+//
+//                     mailAddrSet.add(StringUtils.lowerCase(emailAddr));
+//                 }
+//                 // mailAddr = mailAddr.substring(1);
+//             }
+//         }
+//         return String.join(",", mailAddrSet);
+//     }
+//
+//     /**
+//      * 获得邮件主题
+//      */
+//     private static String getSubject(MimeMessage mimeMessage) {
+//         try {
+//             String subject = mimeMessage.getSubject();
+//             if (StringUtils.isBlank(subject)) {
+//                 subject = StringUtils.EMPTY;
+//             } else {
+//                 subject = ObjectUtil.defaultIfEmpty(MimeUtility.decodeText(mimeMessage.getSubject()), StringUtils.EMPTY);
+//             }
+//             log.debug("邮件主题:{}", subject);
+//             return subject;
+//         } catch (Exception e) {
+//             log.error("获得邮件主题异常:", e);
+//             return StringUtils.EMPTY;
+//         }
+//     }
+//
+//     /**
+//      * 构造邮件信息
+//      *
+//      * @param mailStr         邮箱号,收件人、接收人、抄送人
+//      * @param folder          文件夹
+//      * @param jd              解析后的邮件信息
+//      * @param box             抓取邮箱的账号
+//      * @param now             当前时间
+//      * @param folderId        文件夹ID
+//      * @param repeatMap
+//      * @param allMailRulesMap 该租户下的所有邮件规则map
+//      * @return
+//      */
+//     private List<Mail> structureMail(Part part, String mailStr, String folder, JavaMailDetailed jd, Mailbox box, Date now, String folderId, HashMap<String, Integer> repeatMap, Map<String, Mailbox> allMailBoxMap, String tenantId, Map<String, List<MailRule>> allMailRulesMap) {
+//         String[] split = org.apache.commons.lang3.StringUtils.split(mailStr, ",");
+//         if (ArrayUtils.isEmpty(split)) {
+//             return null;
+//         }
+//
+//         List<Mail> mails = new ArrayList<>();
+//         for (String ms : split) {
+//             // 判断ms是否等于当前抓取邮箱账号(排除会把别人的当作自己数据重复抓取)
+//             if (!org.apache.commons.lang3.StringUtils.equalsIgnoreCase(ms, box.getMailboxName())) {
+//                 // 2021-11-04 旧逻辑,满足条件的跳过
+// //                continue;
+//
+//                 // ----- 2021-11-04 解决密送邮件抓取不下来问题 -----
+//                 ms = box.getMailboxName();
+//             }
+//             if (repeatMap != null && repeatMap.size() > 0) {
+//                 //key=文件夹-邮箱-邮箱ID
+//                 String k = folder + ":" + ms + "-" + jd.getMessageId();
+//                 if (repeatMap.get(k) != null) {
+//                     continue;
+//                 }
+//             }
+//             // ----- 2021-11-04 解决密送邮件抓取不下来问题 begin -----
+//             else {
+//                 repeatMap = new HashMap<>();
+//             }
+//             //key=文件夹-收件人-邮箱ID
+//             repeatMap.put(folder + ":" + ms + "-" + jd.getMessageId(), 1);
+//             // ----- 2021-11-04 解决密送邮件抓取不下来问题 end -----
+//
+//             Mail mail = new Mail();
+//
+//             //邮件类型:1、发起;2、接收
+//             if (org.apache.commons.lang3.StringUtils.equals(folder, MailConstant.Folder.SEND_BOX) || org.apache.commons.lang3.StringUtils.equals(folder, MailConstant.Folder.SEND) || org.apache.commons.lang3.StringUtils.equals(folder, MailConstant.Folder.GMAIL_SEND_BOX)) {
+//                 mail.setMailType(1);
+//             } else {
+//                 mail.setMailType(2);
+//             }
+//
+//             if (mail.getMailType() == 2) {
+//                 //接收人类型:1、收件人;2、抄送人;3、暗抄送人
+//                 StringJoiner receiverType = new StringJoiner(",");
+//                 HashSet<String> receiverIds = new HashSet<>();
+//                 //收件人
+//                 if (org.apache.commons.lang3.StringUtils.indexOf(jd.getMailAddressTo(), ms) != -1) {
+//                     receiverType.add(MailReceiverTypeEnum.TO.getKey() + "");
+//                     receiverIds.add(ms);
+//                 }
+//                 //抄送人
+//                 if (org.apache.commons.lang3.StringUtils.indexOf(jd.getMailAddressCC(), ms) != -1) {
+//                     receiverType.add(MailReceiverTypeEnum.CC.getKey() + "");
+//                     receiverIds.add(ms);
+//                 }
+//                 //暗抄人
+//                 if (org.apache.commons.lang3.StringUtils.indexOf(jd.getMailAddressBCC(), ms) != -1) {
+//                     receiverType.add(MailReceiverTypeEnum.BCC.getKey() + "");
+//                     receiverIds.add(ms);
+//                 }
+//                 String receiverId = receiverIds.stream().collect(Collectors.joining(","));
+//
+//                 mail.setReceiverType(receiverType.toString());
+//                 mail.setReceiverId(receiverId);
+//             }
+//
+//             //mail.setFirstId("0");
+//             //mail.setParentId("0");
+//             mail.setMessageid(jd.getMessageId());
+//             mail.setUid(jd.getUid());
+//             mail.setTitle(jd.getSubject());
+//             mail.setSentDate(jd.getSentDate());
+//
+//             mail.setFromId(jd.getFrom());
+//             mail.setIsRead(jd.getRead() ? YesOrNoEnum.YES.getKey() : YesOrNoEnum.NO.getKey());
+//
+//             mail.setToId(jd.getMailAddressTo());
+//             mail.setCcId(jd.getMailAddressCC());
+//             mail.setBccId(jd.getMailAddressBCC());
+//             mail.setIp(jd.getIp());
+//             mail.setGeoIpMsg(jd.getGeoIpMsg());
+//
+//             //============邮件归类===============
+//             //文件夹ID
+//             mail.setFolderId(folderId);
+//
+//             //标签ID
+//             mail.setLabelId("0");
+//
+//             //是否已回复,0:否、1:是
+//             mail.setReply(0);
+//
+//             //状态:0、草稿;1、已发送;2、已删除;3、垃圾箱;4、收件箱
+//             mail.setStatus(getStatusByFolderName(mail.getFromId(), folder));
+//
+//             mail.setBodyText(jd.getBody());
+//             mail.setDataSources(MailConstant.DataSource.SYNC);
+//             mail.setCreateUser(box.getUserId());
+//             mail.setCreateTime(now);
+//             //抓取数据邮箱
+//             mail.setGrabMailBox(box.getMailboxName());
+//
+//             //设置权限
+//             setMailAuth(mail, allMailBoxMap, tenantId, box.getMailboxName(), allMailRulesMap);
+//
+//             //根据auth、messageid、uid查询数据是否存在
+//             Criteria criteria = Criteria.where("auth").is(mail.getAuth()).and("messageid").is(mail.getMessageid()).and("uid").is(mail.getUid());
+//             Query query = new Query();
+//             query.addCriteria(criteria);
+//             // 只查询id字段
+//             query.fields().include("_id");
+//             long count = mongoTemplate.count(query, Mail.getTableName(tenantId));
+//             if (count > 0) {
+//                 continue;
+//             }
+//
+//             mail.setId(IdUtils.fastSimpleUUID());
+//
+//             try {
+//                 //判断内容中是否含有回执代码
+//                 if (org.apache.commons.lang3.StringUtils.isNotBlank(mail.getBodyText()) && org.apache.commons.lang3.StringUtils.containsIgnoreCase(mail.getBodyText(), MailConstant.RECEIPT_ID)) {
+//                     //截取邮件ID
+//                     String mailId = mail.getBodyText().split(MailConstant.RECEIPT_ID)[1];
+//                     mailId = mailId.split("mId=")[1];
+//                     mailId = mailId.substring(0, 32);
+//                     //如果是发送的,则用内容中携带的mId值
+//                     if (mail.getMailType() == MailTypeEnum.SEND.getKey() && org.apache.commons.lang3.StringUtils.equals(mail.getFromId(), box.getMailboxName())) {
+//                         mail.setId(mailId);
+//                     }
+//
+//                     //获取缓存回执记录
+//                     List<JSONObject> receiptRecords = bladeRedis.get(RedisCacheKeyConstant.MAIL_RECEIPT_KEY + mail.getId());
+//                     if (CollectionUtils.isNotEmpty(receiptRecords)) {
+//                         mail.setReceiptRecords(receiptRecords);
+//                         //删除缓存
+//                         bladeRedis.del(RedisCacheKeyConstant.MAIL_RECEIPT_KEY + mail.getId());
+//                     }
+//                 }
+//             } catch (Exception e) {
+//                 log.error("解析回执代码错误!!!" + ",邮件标题:《" + mail.getTitle() + "》");
+//             }
+//
+//             //附件
+//             List<FileDetailed> attachments = getAttachments(part);
+//             List<MailAttachment> attas = new ArrayList<>();
+//             if (CollectionUtils.isNotEmpty(attachments)) {
+//                 for (FileDetailed attachment : attachments) {
+//                     MailAttachment mailAttachment = new MailAttachment(UUID.randomUUID().toString(), attachment.getRealName(), attachment.getTemName(), attachment.getPath(), attachment.getSize());
+//                     mailAttachment.setCid(attachment.getCid());
+//                     mailAttachment.setDecodePreName(Optional.ofNullable(attachment.getDecodePreName()).orElse(""));
+//                     mailAttachment.setInputStream(attachment.getInputStream());
+//                     attas.add(mailAttachment);
+//                 }
+//             }
+//             mail.setAttachments(attas);
+//             mails.add(mail);
+//             attachments = null;
+//         }
+//         return mails;
+//     }
+
+
+}

+ 106 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/back/test/JavaMailDetailed.java

@@ -0,0 +1,106 @@
+package com.fjhx.back.test;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 邮件信息
+ */
+@Data
+public class JavaMailDetailed implements Serializable {
+
+    private static final long serialVersionUID = 5578441317476651843L;
+
+    // 第三方邮件ID(EmailEngine)
+    private String eeId;
+
+    // 邮件ID,MessageID是发送邮件的时候生成的唯一ID
+    private String messageId;
+
+    // 邮件uid,UID是邮箱用来标识你这个账户的每一封邮件的东西
+    private Long uid;
+
+    // 主题
+    private String subject;
+
+    // 发送时间
+    private Date sentDate;
+
+    // 是否需要回复
+    private boolean replySign;
+
+    // 是否已读
+    private boolean read;
+
+    // 是否包含附件
+    private boolean containAttach;
+
+    // 发送人地址
+    private String from;
+
+    // 收信人地址
+    private String mailAddressTo;
+
+    // 抄送人地址
+    private String mailAddressCC;
+
+    // 暗抄人地址
+    private String mailAddressBCC;
+
+    // 正文内容
+    private String body;
+
+    // 邮箱权限
+    private String auth;
+
+    // 邮件抓取附件信息
+    private List<FileDetailed> attachments;
+
+    // 附件集合
+    private List<MailAttachment> atts;
+
+    // 正文附件集合
+    private List<MailAttachment> textAtts;
+
+    /**
+     * 邮件IP
+     */
+    private String ip;
+
+    /**
+     * IP地理位置
+     */
+    private String geoIpMsg;
+
+    /**
+     * 邮件内容(去除标签)
+     */
+    private String plain;
+
+    public boolean getReplySign() {
+        return replySign;
+    }
+
+    public void setReplySign(boolean replySign) {
+        this.replySign = replySign;
+    }
+
+    public boolean getRead() {
+        return read;
+    }
+
+    public void setRead(boolean read) {
+        this.read = read;
+    }
+
+    public boolean getContainAttach() {
+        return containAttach;
+    }
+
+    public void setContainAttach(boolean containAttach) {
+        this.containAttach = containAttach;
+    }
+}

+ 90 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/back/test/MailAttachment.java

@@ -0,0 +1,90 @@
+package com.fjhx.back.test;
+
+import lombok.Data;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.index.Indexed;
+import org.springframework.data.mongodb.core.mapping.Field;
+
+import java.io.InputStream;
+import java.io.Serializable;
+import java.util.Optional;
+
+/**
+ * 邮件附件
+ */
+@Data
+public class MailAttachment implements Serializable {
+
+    private static final long serialVersionUID = 4941615478124230199L;
+
+    /**
+     * 主键id
+     */
+    @Id
+    @Indexed
+    private String id;
+
+    /**
+     * 邮件内容中图片的cid,只有内容中有图片该字段有值
+     */
+    @Field(value = "cid")
+    private String cid;
+
+    //解码前的文件名称
+    @Field(value = "decodePreName")
+    private String decodePreName;
+
+    /**
+     * 附件的真实名称
+     */
+    @Field(value = "realName")
+    private String realName;
+
+    /**
+     * 附件的临时名称
+     */
+    @Field(value = "temName")
+    private String temName;
+
+    /**
+     * 路径
+     */
+    @Field(value = "path")
+    private String path;
+
+    /**
+     * 文件格式(例:.jpg)
+     */
+    @Field(value = "format")
+    private String format;
+
+    /**
+     * 大小
+     */
+    @Field(value = "size")
+    private Long size;
+
+    private InputStream inputStream;
+
+    /**
+     * 附件字节流
+     */
+    private byte[] bytes;
+
+    public MailAttachment() {
+
+    }
+
+    public MailAttachment(String id, String realName, String temName, String path, Long size) {
+        this.id = id;
+        this.realName = realName;
+        this.temName = temName;
+        this.path = path;
+        this.size = Optional.ofNullable(size).orElse(0L);
+
+        if (StringUtils.isNotBlank(path)) {
+            this.format = path.substring(path.lastIndexOf("."));
+        }
+    }
+}

+ 207 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/back/test/NewTest.java

@@ -0,0 +1,207 @@
+package com.fjhx.back.test;
+
+
+// import jakarta.mail.*;
+// import jakarta.mail.internet.InternetAddress;
+// import jakarta.mail.internet.MimeUtility;
+// import jakarta.mail.search.FlagTerm;
+
+import com.fjhx.utils.mail.*;
+import jakarta.activation.DataSource;
+import jakarta.mail.Flags;
+import lombok.SneakyThrows;
+
+import javax.mail.internet.MimeUtility;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.util.Date;
+import java.util.List;
+
+public class NewTest {
+
+
+    @SneakyThrows
+    public static void main(String[] args) {
+        // ImapServer imapServer = MailServer.create()
+        //         .auth("2428241269@qq.com", "kdypajdrwfhtdihb")
+        //         .host("imap.qq.com")
+        //         .port(993)
+        //         .ssl(true)
+        //         .buildImapMailServer();
+
+        ImapServer imapServer = MailServer.create()
+                .auth("sale12@bridge-style.cc", "59amYpMFaZL7EWK4")
+                .host("imap.qiye.163.com")
+                .port(993)
+                .ssl(true)
+                .strictAddress(true)
+                .buildImapMailServer();
+
+
+        // boolean isSSL = true;
+        // String host = "imap.qiye.163.com";
+        // int port = 993;
+        //
+        // String username = "sale12@bridge-style.cc";
+        // String password = "59amYpMFaZL7EWK4";
+        //
+        // String protocol = "imap";
+        //
+        // Properties props = new Properties();
+        // props.put("mail.imap.ssl.enable", isSSL);
+        // props.put("mail.imap.host", host);
+        // props.put("mail.imap.port", port);
+        // Session session = Session.getDefaultInstance(props);
+        //
+        // Session instance = Session.getInstance(props);
+        //
+        //
+        // Store store = null;
+        // Folder folder = null;
+        // try {
+        //     store = session.getStore(protocol);
+        //     store.connect(username, password);
+        //
+        //     Folder[] personalNamespaces = store.getPersonalNamespaces();
+        //     Folder[] sharedNamespaces = store.getSharedNamespaces();
+        //
+        //
+        //
+        //     folder = store.getFolder("INBOX");
+        //     folder.open(Folder.READ_ONLY);
+        //
+        //
+        //     int size = folder.getMessageCount();
+        //     System.out.println("邮件个数:" + size);
+        //     System.out.println("最新一封邮件为:");
+        //     Message message = folder.getMessage(size);
+        //     String from = message.getFrom()[0].toString();
+        //     String subject = message.getSubject();
+        //     Date date = message.getSentDate();
+        //     System.out.println("From: " + from);
+        //     System.out.println("Subject: " + subject);
+        //     System.out.println("Date: " + date);
+        // } catch (NoSuchProviderException e) {
+        //     e.printStackTrace();
+        // } catch (MessagingException e) {
+        //     e.printStackTrace();
+        // } finally {
+        //     try {
+        //         if (folder != null) {
+        //             folder.close(false);
+        //         }
+        //         if (store != null) {
+        //             store.close();
+        //         }
+        //     } catch (MessagingException e) {
+        //         e.printStackTrace();
+        //     }
+        // }
+        // System.out.println("接收完毕!");
+
+
+        //
+        // ImapServer imapServer = MailServer.create()
+        //         .auth("18706065630", "GMSTJUQCRHWYZGMO")
+        //         .host("imap.163.com")
+        //         .port(993)
+        //         .ssl(true)
+        //         .buildImapMailServer();
+        //
+        //
+        ReceiveMailSession session = imapServer.createSession();
+
+        session.open();
+
+        String[] allFolders = session.getAllFolders();
+
+        // 收到的邮件数量
+        System.out.println(session.getMessageCount());
+
+
+        ReceivedEmail[] receivedEmails = session.receiveEmailAndMarkSeen();
+        for (ReceivedEmail receivedEmail : receivedEmails) {
+
+            String fullName = receivedEmail.originalMessage().getFolder().getFullName();
+            EmailAddress[] cc = receivedEmail.cc();
+            EmailAddress[] to = receivedEmail.to();
+            EmailAddress[] emailAddresses = receivedEmail.replyTo();
+
+            for (EmailAddress emailAddress : emailAddresses) {
+                String personalName = emailAddress.getPersonalName();
+            }
+
+            int i = receivedEmail.messageNumber();
+
+            Flags flags = receivedEmail.flags();
+            String s1 = flags.toString();
+            String[] userFlags = flags.getUserFlags();
+            Flags.Flag[] systemFlags = flags.getSystemFlags();
+            for (Flags.Flag systemFlag : systemFlags) {
+                System.out.println("systemFlag.toString() = " + systemFlag.toString());
+                boolean equals = systemFlag.equals(Flags.Flag.SEEN);
+                System.out.println(equals);
+            }
+
+            EmailAddress from1 = receivedEmail.from();
+
+            String subject = receivedEmail.subject();
+
+            EmailAddress from = receivedEmail.from();
+            String email = from.getEmail();
+            String personalName = from.getPersonalName();
+            String personal = MimeUtility.decodeText(personalName);
+
+            Date date = receivedEmail.receivedDate();
+
+            String messageId = receivedEmail.messageId();
+
+            List<EmailMessage> messages1 = receivedEmail.messages();
+
+            List<EmailAttachment<? extends DataSource>> attachments = receivedEmail.attachments();
+            for (EmailAttachment<? extends DataSource> attachment : attachments) {
+                String name = attachment.getName();
+                int size = attachment.getSize();
+                String contentId = attachment.getContentId();
+                String encodedName = attachment.getEncodedName();
+
+                String s = MimeUtility.decodeText(encodedName);
+
+                byte[] bytes = attachment.toByteArray();
+
+                FileOutputStream outputStream = new FileOutputStream("D:\\24282\\Desktop\\任务\\测试1.xls");
+                outputStream.write(bytes);
+
+
+                attachment.writeToFile(new File("D:\\24282\\Desktop\\任务\\测试2.xls"));
+
+                System.out.println();
+            }
+
+
+            List<ReceivedEmail> receivedEmails2 = receivedEmail.attachedMessages();
+
+            for (ReceivedEmail receivedEmail1 : receivedEmails2) {
+                return;
+            }
+
+
+            List<EmailMessage> messages = receivedEmail.messages();
+
+            for (EmailMessage message : messages) {
+                message.getMimeType();
+            }
+        }
+        session.close();
+
+        // ImapServer imapServer = MailServer.create()
+        //         .auth("sale12@bridge-style.cc", "59amYpMFaZL7EWK4")
+        //         .host("imap.qiye.163.com")
+        //         .port(993)
+        //         .ssl(true)
+        //         .strictAddress(true)
+        //         .buildImapMailServer();
+
+    }
+
+}

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/account/AddAccountAlias.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/AddAccountAlias.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.account;
+package com.fjhx.back.wy163.qiye.mail.api.account;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/account/CreateAccount.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/CreateAccount.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.account;
+package com.fjhx.back.wy163.qiye.mail.api.account;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/account/DeleteAccountAlias.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/DeleteAccountAlias.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.account;
+package com.fjhx.back.wy163.qiye.mail.api.account;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/account/DeleteAccountSim.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/DeleteAccountSim.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.account;
+package com.fjhx.back.wy163.qiye.mail.api.account;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/account/GetAccount.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/GetAccount.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.account;
+package com.fjhx.back.wy163.qiye.mail.api.account;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/account/GetAccountAliasList.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/GetAccountAliasList.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.account;
+package com.fjhx.back.wy163.qiye.mail.api.account;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/account/RecoverAccount.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/RecoverAccount.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.account;
+package com.fjhx.back.wy163.qiye.mail.api.account;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/account/SuspendAccount.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/SuspendAccount.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.account;
+package com.fjhx.back.wy163.qiye.mail.api.account;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/account/UpdateAccount.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/UpdateAccount.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.account;
+package com.fjhx.back.wy163.qiye.mail.api.account;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/account/UpdateAccountLoginPerm.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/UpdateAccountLoginPerm.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.account;
+package com.fjhx.back.wy163.qiye.mail.api.account;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/account/UpdatePassword.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/account/UpdatePassword.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.account;
+package com.fjhx.back.wy163.qiye.mail.api.account;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/address/UpdateAccountRank.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/address/UpdateAccountRank.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.address;
+package com.fjhx.back.wy163.qiye.mail.api.address;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/archive/AddArchiveMailAccount.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/archive/AddArchiveMailAccount.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.archive;
+package com.fjhx.back.wy163.qiye.mail.api.archive;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/archive/DeleteArchiveMailAccount.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/archive/DeleteArchiveMailAccount.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.archive;
+package com.fjhx.back.wy163.qiye.mail.api.archive;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/archive/ExistArchiveMailAccount.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/archive/ExistArchiveMailAccount.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.archive;
+package com.fjhx.back.wy163.qiye.mail.api.archive;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/autobackup/GetAutoBackupList.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/autobackup/GetAutoBackupList.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.autobackup;
+package com.fjhx.back.wy163.qiye.mail.api.autobackup;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/domain/GetDomain.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/domain/GetDomain.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.domain;
+package com.fjhx.back.wy163.qiye.mail.api.domain;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/login/GetClientLoginLogs.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/login/GetClientLoginLogs.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.login;
+package com.fjhx.back.wy163.qiye.mail.api.login;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 public class GetClientLoginLogs {
 	public static void main(String[] args) {

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/login/GetWebLoginLogs.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/login/GetWebLoginLogs.java

@@ -1,8 +1,8 @@
-package com.fjhx.utils.wy163.qiye.mail.api.login;
+package com.fjhx.back.wy163.qiye.mail.api.login;
 
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 public class GetWebLoginLogs {
 	public static void main(String[] args) {

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/mail/GetReceivedMailLogs.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mail/GetReceivedMailLogs.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.mail;
+package com.fjhx.back.wy163.qiye.mail.api.mail;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 public class GetReceivedMailLogs {
 	public static void main(String[] args) {

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/mail/GetSentMailLogs.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mail/GetSentMailLogs.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.mail;
+package com.fjhx.back.wy163.qiye.mail.api.mail;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 public class GetSentMailLogs {
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/mailaccount/ClearAutoForward.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mailaccount/ClearAutoForward.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.mailaccount;
+package com.fjhx.back.wy163.qiye.mail.api.mailaccount;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/mailaccount/GetAutoForward.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mailaccount/GetAutoForward.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.mailaccount;
+package com.fjhx.back.wy163.qiye.mail.api.mailaccount;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/mailaccount/GetMailAccount.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mailaccount/GetMailAccount.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.mailaccount;
+package com.fjhx.back.wy163.qiye.mail.api.mailaccount;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/mailaccount/OpenAutoForward.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mailaccount/OpenAutoForward.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.mailaccount;
+package com.fjhx.back.wy163.qiye.mail.api.mailaccount;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/mailaccount/UpdateRsLimit.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mailaccount/UpdateRsLimit.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.mailaccount;
+package com.fjhx.back.wy163.qiye.mail.api.mailaccount;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/mailbox/GetUnreadMsg.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mailbox/GetUnreadMsg.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.mailbox;
+package com.fjhx.back.wy163.qiye.mail.api.mailbox;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/mailbox/ListMessages.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mailbox/ListMessages.java

@@ -1,9 +1,9 @@
-package com.fjhx.utils.wy163.qiye.mail.api.mailbox;
+package com.fjhx.back.wy163.qiye.mail.api.mailbox;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/maillist/AddMaillistForwardList.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/maillist/AddMaillistForwardList.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.maillist;
+package com.fjhx.back.wy163.qiye.mail.api.maillist;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/maillist/CreateMaillist.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/maillist/CreateMaillist.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.maillist;
+package com.fjhx.back.wy163.qiye.mail.api.maillist;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/maillist/DeleteMaillist.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/maillist/DeleteMaillist.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.maillist;
+package com.fjhx.back.wy163.qiye.mail.api.maillist;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/maillist/GetMaillist.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/maillist/GetMaillist.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.maillist;
+package com.fjhx.back.wy163.qiye.mail.api.maillist;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/maillist/RemoveMaillistForwardList.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/maillist/RemoveMaillistForwardList.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.maillist;
+package com.fjhx.back.wy163.qiye.mail.api.maillist;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/maillist/UpdateMaillist.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/maillist/UpdateMaillist.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.maillist;
+package com.fjhx.back.wy163.qiye.mail.api.maillist;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/mobile/AddMobile.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mobile/AddMobile.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.mobile;
+package com.fjhx.back.wy163.qiye.mail.api.mobile;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/mobile/BindSms.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mobile/BindSms.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.mobile;
+package com.fjhx.back.wy163.qiye.mail.api.mobile;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 public class BindSms {
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/mobile/DeleteMobile.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mobile/DeleteMobile.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.mobile;
+package com.fjhx.back.wy163.qiye.mail.api.mobile;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/mobile/GetMobile.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mobile/GetMobile.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.mobile;
+package com.fjhx.back.wy163.qiye.mail.api.mobile;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/mobile/GetSmsSettings.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mobile/GetSmsSettings.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.mobile;
+package com.fjhx.back.wy163.qiye.mail.api.mobile;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 public class GetSmsSettings {
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/mobile/UnBindSms.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/mobile/UnBindSms.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.mobile;
+package com.fjhx.back.wy163.qiye.mail.api.mobile;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 public class UnBindSms {
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/pub/CreateGroup.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/pub/CreateGroup.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.pub;
+package com.fjhx.back.wy163.qiye.mail.api.pub;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/pub/CreatePubAddress.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/pub/CreatePubAddress.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.pub;
+package com.fjhx.back.wy163.qiye.mail.api.pub;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/pub/DeletePubAddress.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/pub/DeletePubAddress.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.pub;
+package com.fjhx.back.wy163.qiye.mail.api.pub;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/pub/GetGroupList.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/pub/GetGroupList.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.pub;
+package com.fjhx.back.wy163.qiye.mail.api.pub;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/pub/GetPubAddressList.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/pub/GetPubAddressList.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.pub;
+package com.fjhx.back.wy163.qiye.mail.api.pub;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/pub/UpdatePubAddress.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/pub/UpdatePubAddress.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.pub;
+package com.fjhx.back.wy163.qiye.mail.api.pub;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/push/AddPushMailSubscribe.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/push/AddPushMailSubscribe.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.push;
+package com.fjhx.back.wy163.qiye.mail.api.push;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/push/DeletePushMailSubscribe.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/push/DeletePushMailSubscribe.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.push;
+package com.fjhx.back.wy163.qiye.mail.api.push;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/unit/CreateUnit.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/unit/CreateUnit.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.unit;
+package com.fjhx.back.wy163.qiye.mail.api.unit;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/unit/DeleteUnit.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/unit/DeleteUnit.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.unit;
+package com.fjhx.back.wy163.qiye.mail.api.unit;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/unit/GetAccountList.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/unit/GetAccountList.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.unit;
+package com.fjhx.back.wy163.qiye.mail.api.unit;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/unit/GetUnit.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/unit/GetUnit.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.unit;
+package com.fjhx.back.wy163.qiye.mail.api.unit;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/unit/GetUnitList.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/unit/GetUnitList.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.unit;
+package com.fjhx.back.wy163.qiye.mail.api.unit;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/unit/MoveUnit.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/unit/MoveUnit.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.unit;
+package com.fjhx.back.wy163.qiye.mail.api.unit;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/unit/UpdateUnit.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/unit/UpdateUnit.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.unit;
+package com.fjhx.back.wy163.qiye.mail.api.unit;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/api/unit/UpdateUnitRank.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/api/unit/UpdateUnitRank.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.api.unit;
+package com.fjhx.back.wy163.qiye.mail.api.unit;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 2 - 2
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/tool/CreateKeyPair.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/tool/CreateKeyPair.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.tool;
+package com.fjhx.back.wy163.qiye.mail.tool;
 
 
-import com.fjhx.utils.wy163.rsa.Utils;
+import com.fjhx.back.wy163.rsa.Utils;
 
 public class CreateKeyPair {
 

+ 2 - 2
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/tool/Login.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/tool/Login.java

@@ -1,6 +1,6 @@
-package com.fjhx.utils.wy163.qiye.mail.tool;
+package com.fjhx.back.wy163.qiye.mail.tool;
 
-import com.fjhx.utils.wy163.rsa.RSATool;
+import com.fjhx.back.wy163.rsa.RSATool;
 
 public class Login {
 

+ 2 - 2
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/tool/LoginFolder.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/tool/LoginFolder.java

@@ -1,5 +1,5 @@
-package com.fjhx.utils.wy163.qiye.mail.tool;
-import com.fjhx.utils.wy163.rsa.RSATool;
+package com.fjhx.back.wy163.qiye.mail.tool;
+import com.fjhx.back.wy163.rsa.RSATool;
 
 import java.io.UnsupportedEncodingException;
 

+ 2 - 2
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/tool/LoginMid.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/tool/LoginMid.java

@@ -1,5 +1,5 @@
-package com.fjhx.utils.wy163.qiye.mail.tool;
-import com.fjhx.utils.wy163.rsa.RSATool;
+package com.fjhx.back.wy163.qiye.mail.tool;
+import com.fjhx.back.wy163.rsa.RSATool;
 
 import java.io.UnsupportedEncodingException;
 

+ 3 - 3
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/qiye/mail/tool/Unread.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/qiye/mail/tool/Unread.java

@@ -1,7 +1,7 @@
-package com.fjhx.utils.wy163.qiye.mail.tool;
+package com.fjhx.back.wy163.qiye.mail.tool;
 
-import com.fjhx.utils.wy163.rsa.HttpPost;
-import com.fjhx.utils.wy163.rsa.RSASignatureToQiye;
+import com.fjhx.back.wy163.rsa.HttpPost;
+import com.fjhx.back.wy163.rsa.RSASignatureToQiye;
 
 import java.io.UnsupportedEncodingException;
 

+ 1 - 1
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/rsa/HttpPost.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/rsa/HttpPost.java

@@ -1,4 +1,4 @@
-package com.fjhx.utils.wy163.rsa;
+package com.fjhx.back.wy163.rsa;
 
 import cn.hutool.core.util.StrUtil;
 

+ 1 - 1
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/rsa/RSASignatureToQiye.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/rsa/RSASignatureToQiye.java

@@ -1,4 +1,4 @@
-package com.fjhx.utils.wy163.rsa;
+package com.fjhx.back.wy163.rsa;
 
 import java.security.KeyFactory;
 import java.security.KeyPair;

+ 1 - 1
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/rsa/RSATool.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/rsa/RSATool.java

@@ -1,4 +1,4 @@
-package com.fjhx.utils.wy163.rsa;
+package com.fjhx.back.wy163.rsa;
 
 import org.apache.commons.lang.ArrayUtils;
 import sun.misc.BASE64Encoder;

+ 1 - 2
bladex-saas-project/new-mail/src/main/java/com/fjhx/utils/wy163/rsa/Utils.java → bladex-saas-project/new-mail/src/main/java/com/fjhx/back/wy163/rsa/Utils.java

@@ -1,7 +1,6 @@
-package com.fjhx.utils.wy163.rsa;
+package com.fjhx.back.wy163.rsa;
 
 import java.io.BufferedReader;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.UnsupportedEncodingException;

+ 43 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/config/TaskPoolConfig.java

@@ -0,0 +1,43 @@
+package com.fjhx.config;
+
+import cn.hutool.core.thread.ThreadUtil;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+
+import java.util.concurrent.Executor;
+
+/**
+ * 线程池配置
+ */
+@EnableAsync
+@Configuration
+public class TaskPoolConfig {
+
+    public static final String emailTaskExecutor = "emailTaskExecutor";
+
+    @Bean(name = emailTaskExecutor)
+    public Executor emailTaskExecutor() {
+        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+        // 配置核心线程数
+        executor.setCorePoolSize(10);
+        // 配置最大线程数
+        executor.setMaxPoolSize(50);
+        // 配置队列大小
+        executor.setQueueCapacity(200);
+        // 缓冲队列大小
+        executor.setKeepAliveSeconds(300);
+        // 配置线程池中的线程的名称前缀
+        executor.setThreadNamePrefix("email-async-service:");
+        // 线程池对拒绝任务的处理策略:等待30秒后重新提交本线程
+        executor.setRejectedExecutionHandler((runnable, executor1) -> {
+            ThreadUtil.sleep(30 * 1000);
+            executor1.execute(runnable);
+        });
+        // 执行初始化
+        executor.initialize();
+        return executor;
+    }
+
+}

+ 18 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/controller/MailAddressController.java

@@ -0,0 +1,18 @@
+package com.fjhx.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 邮件关联地址表 前端控制器
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-03-06
+ */
+@RestController
+@RequestMapping("/mailAddress")
+public class MailAddressController {
+
+}

+ 18 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/controller/MailAttachmentController.java

@@ -0,0 +1,18 @@
+package com.fjhx.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-03-06
+ */
+@RestController
+@RequestMapping("/mailAttachment")
+public class MailAttachmentController {
+
+}

+ 18 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/controller/MailFolderController.java

@@ -0,0 +1,18 @@
+package com.fjhx.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 邮箱文件夹 前端控制器
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-03-06
+ */
+@RestController
+@RequestMapping("/mailFolder")
+public class MailFolderController {
+
+}

+ 18 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/controller/MailInfoController.java

@@ -0,0 +1,18 @@
+package com.fjhx.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 邮件主表 前端控制器
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-03-06
+ */
+@RestController
+@RequestMapping("/mailInfo")
+public class MailInfoController {
+
+}

+ 18 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/controller/MailMessageController.java

@@ -0,0 +1,18 @@
+package com.fjhx.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 邮件正文 前端控制器
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-03-06
+ */
+@RestController
+@RequestMapping("/mailMessage")
+public class MailMessageController {
+
+}

+ 19 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/controller/MailboxController.java

@@ -0,0 +1,19 @@
+package com.fjhx.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 业务员邮箱信息表 前端控制器
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-03-06
+ */
+@RestController
+@RequestMapping("/mailbox")
+public class MailboxController {
+
+
+}

+ 52 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/entity/MailAddress.java

@@ -0,0 +1,52 @@
+package com.fjhx.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 邮件关联地址表
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-03-06
+ */
+@Getter
+@Setter
+@TableName("t_mail_address")
+public class MailAddress implements Serializable {
+
+    private static final long serialVersionUID = 3568046178869491465L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 邮件主表id
+     */
+    private Long mailInfoId;
+
+    /**
+     * 类型 1收件人(to) 2抄送人(cc) 3回复人(replyTo)
+     */
+    private Integer type;
+
+    /**
+     * email地址
+     */
+    private String email;
+
+    /**
+     * email名称
+     */
+    private String personalName;
+
+}

+ 42 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/entity/MailAttachment.java

@@ -0,0 +1,42 @@
+package com.fjhx.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import org.springblade.core.mp.base.BasicsEntity;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-03-06
+ */
+@Getter
+@Setter
+@TableName("t_mail_attachment")
+public class MailAttachment implements Serializable {
+
+    private static final long serialVersionUID = 3568046178869491465L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 附件名称
+     */
+    private String name;
+
+    /**
+     * 附件url
+     */
+    private String url;
+}

+ 41 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/entity/MailFolder.java

@@ -0,0 +1,41 @@
+package com.fjhx.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 邮箱文件夹
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-03-06
+ */
+@Getter
+@Setter
+@TableName("t_mail_folder")
+public class MailFolder implements Serializable {
+
+    private static final long serialVersionUID = 3568046178869491465L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 邮箱id
+     */
+    private String mailboxId;
+
+    /**
+     * 文件夹名称
+     */
+    private String name;
+}

+ 88 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/entity/MailInfo.java

@@ -0,0 +1,88 @@
+package com.fjhx.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 邮件主表
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-03-06
+ */
+@Getter
+@Setter
+@TableName("t_mail_info")
+public class MailInfo implements Serializable {
+
+    private static final long serialVersionUID = 3568046178869491465L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 邮箱id
+     */
+    private String mailboxId;
+
+    /**
+     * 邮件id
+     */
+    private String messageId;
+
+    /**
+     * 消息数量
+     */
+    private Integer messageNumber;
+
+    /**
+     * 邮件标题
+     */
+    private String subject;
+
+    /**
+     * 邮件标记
+     */
+    private String flags;
+
+    /**
+     * 文件夹id
+     */
+    private Long folderId;
+
+    /**
+     * 文件夹名称
+     */
+    private String folderName;
+
+    /**
+     * 发件人email
+     */
+    private String fromEmail;
+
+    /**
+     * 发件人名称
+     */
+    private String fromPersonalName;
+
+    /**
+     * 发件时间
+     */
+    private Date sendDate;
+
+    /**
+     * 同步时间
+     */
+    private Date createTime;
+
+}

+ 51 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/entity/MailMessage.java

@@ -0,0 +1,51 @@
+package com.fjhx.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 邮件正文
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-03-06
+ */
+@Getter
+@Setter
+@TableName("t_mail_message")
+public class MailMessage implements Serializable {
+
+    private static final long serialVersionUID = 3568046178869491465L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 邮件主表id
+     */
+    private Long mailInfoId;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 类型
+     */
+    private String mimeType;
+
+    /**
+     * 编码
+     */
+    private String encoding;
+}

+ 88 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/entity/Mailbox.java

@@ -0,0 +1,88 @@
+package com.fjhx.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 业务员邮箱信息表
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-03-06
+ */
+@Getter
+@Setter
+@TableName("t_pub_mailbox")
+public class Mailbox implements Serializable {
+
+    private static final long serialVersionUID = 3568046178869491465L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private String id;
+
+    /**
+     * 租户ID
+     */
+    private String tenantId;
+
+    /**
+     * 邮箱账号
+     */
+    private String mailboxName;
+
+    /**
+     * 邮箱host
+     */
+    private String mailHost;
+
+    /**
+     * 邮箱授权码
+     */
+    private String mailboxPwd;
+
+    /**
+     * 用户ID
+     */
+    private String userId;
+
+    /**
+     * 状态:0、启用;1、禁用
+     */
+    private Integer status;
+
+    /**
+     * 是否默认:0、否;1、是
+     */
+    private Integer isDefault;
+
+    /**
+     * 收件端口
+     */
+    private Integer imapPort;
+
+    /**
+     * 发件端口
+     */
+    private Integer smtpPort;
+
+    /**
+     * 上次邮件id
+     */
+    private String lastMessageId;
+
+    /**
+     * 上次同步时间
+     */
+    private Date lastReceivedDate;
+
+}

+ 39 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/enums/MailFlagEnum.java

@@ -0,0 +1,39 @@
+package com.fjhx.enums;
+
+import jakarta.mail.Flags;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.HashMap;
+import java.util.Map;
+
+
+@Getter
+@AllArgsConstructor
+public enum MailFlagEnum {
+
+    ANSWERED("1", Flags.Flag.ANSWERED),
+    DELETED("2", Flags.Flag.DELETED),
+    DRAFT("3", Flags.Flag.DRAFT),
+    FLAGGED("4", Flags.Flag.FLAGGED),
+    RECENT("5", Flags.Flag.RECENT),
+    SEEN("6", Flags.Flag.SEEN),
+    USER("7", Flags.Flag.USER),
+    ;
+
+    private final String type;
+    private final Flags.Flag flag;
+
+    private static final Map<Flags.Flag, MailFlagEnum> map = new HashMap<>();
+
+    static {
+        for (MailFlagEnum value : MailFlagEnum.values()) {
+            map.put(value.getFlag(), value);
+        }
+    }
+
+    public static String getType(Flags.Flag flag) {
+        return map.get(flag).getType();
+    }
+
+}

+ 16 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailAddressMapper.java

@@ -0,0 +1,16 @@
+package com.fjhx.mapper;
+
+import com.fjhx.entity.MailAddress;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 邮件关联地址表 Mapper 接口
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-03-06
+ */
+public interface MailAddressMapper extends BaseMapper<MailAddress> {
+
+}

+ 5 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailAddressMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.mapper.MailAddressMapper">
+
+</mapper>

+ 16 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailAttachmentMapper.java

@@ -0,0 +1,16 @@
+package com.fjhx.mapper;
+
+import com.fjhx.entity.MailAttachment;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-03-06
+ */
+public interface MailAttachmentMapper extends BaseMapper<MailAttachment> {
+
+}

+ 5 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailAttachmentMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.mapper.MailAttachmentMapper">
+
+</mapper>

+ 16 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailFolderMapper.java

@@ -0,0 +1,16 @@
+package com.fjhx.mapper;
+
+import com.fjhx.entity.MailFolder;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 邮箱文件夹 Mapper 接口
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-03-06
+ */
+public interface MailFolderMapper extends BaseMapper<MailFolder> {
+
+}

+ 5 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailFolderMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.mapper.MailFolderMapper">
+
+</mapper>

+ 16 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailInfoMapper.java

@@ -0,0 +1,16 @@
+package com.fjhx.mapper;
+
+import com.fjhx.entity.MailInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 邮件主表 Mapper 接口
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-03-06
+ */
+public interface MailInfoMapper extends BaseMapper<MailInfo> {
+
+}

+ 5 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailInfoMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.mapper.MailInfoMapper">
+
+</mapper>

+ 16 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailMessageMapper.java

@@ -0,0 +1,16 @@
+package com.fjhx.mapper;
+
+import com.fjhx.entity.MailMessage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 邮件正文 Mapper 接口
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-03-06
+ */
+public interface MailMessageMapper extends BaseMapper<MailMessage> {
+
+}

+ 5 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailMessageMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.mapper.MailMessageMapper">
+
+</mapper>

+ 16 - 0
bladex-saas-project/new-mail/src/main/java/com/fjhx/mapper/MailboxMapper.java

@@ -0,0 +1,16 @@
+package com.fjhx.mapper;
+
+import com.fjhx.entity.Mailbox;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 业务员邮箱信息表 Mapper 接口
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-03-06
+ */
+public interface MailboxMapper extends BaseMapper<Mailbox> {
+
+}

Some files were not shown because too many files changed in this diff