Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-email
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xingmin
yd-email
Commits
da3ce69a
Commit
da3ce69a
authored
Sep 26, 2025
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
测试发送邮件
parent
67927463
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
114 additions
and
13 deletions
+114
-13
yd-email-api/src/main/java/com/yd/email/api/controller/ApiEmailFileController.java
+15
-0
yd-email-api/src/main/java/com/yd/email/api/service/ApiEmailFileService.java
+6
-0
yd-email-api/src/main/java/com/yd/email/api/service/impl/ApiEmailContactImportServiceImpl.java
+2
-2
yd-email-api/src/main/java/com/yd/email/api/service/impl/ApiEmailFileServiceImpl.java
+15
-0
yd-email-api/src/main/java/com/yd/email/api/service/impl/ApiEmailSendServiceImpl.java
+26
-10
yd-email-feign/src/main/java/com/yd/email/feign/client/ApiEmailFileFeignClient.java
+15
-0
yd-email-feign/src/main/java/com/yd/email/feign/dto/ApiEmailContactDto.java
+1
-1
yd-email-feign/src/main/java/com/yd/email/feign/fallback/ApiEmailFileFeignFallbackFactory.java
+9
-0
yd-email-feign/src/main/java/com/yd/email/feign/request/ApiImportVariableExcelRequest.java
+12
-0
yd-email-feign/src/main/java/com/yd/email/feign/request/ApiSendEmailRequest.java
+1
-0
yd-email-feign/src/main/java/com/yd/email/feign/response/ApiImportVariableExcelResponse.java
+12
-0
No files found.
yd-email-api/src/main/java/com/yd/email/api/controller/ApiEmailFileController.java
View file @
da3ce69a
...
...
@@ -4,11 +4,14 @@ import com.yd.common.result.Result;
import
com.yd.email.api.service.ApiEmailFileService
;
import
com.yd.email.feign.client.ApiEmailFileFeignClient
;
import
com.yd.email.feign.request.ApiExportVariableExcelRequest
;
import
com.yd.email.feign.request.ApiImportVariableExcelRequest
;
import
com.yd.email.feign.response.ApiExportVariableExcelResponse
;
import
com.yd.email.feign.response.ApiImportVariableExcelResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.multipart.MultipartFile
;
/**
* 邮件文件信息
...
...
@@ -33,4 +36,16 @@ public class ApiEmailFileController implements ApiEmailFileFeignClient {
public
Result
<
ApiExportVariableExcelResponse
>
exportVariableExcel
(
ApiExportVariableExcelRequest
request
)
{
return
apiEmailFileService
.
exportVariableExcel
(
request
);
}
/**
* 导入-变量excel
* @param file
* @param request
* @return
*/
@Override
public
Result
<
ApiImportVariableExcelResponse
>
importVariableExcel
(
MultipartFile
file
,
ApiImportVariableExcelRequest
request
)
{
return
apiEmailFileService
.
importVariableExcel
(
file
,
request
);
}
}
yd-email-api/src/main/java/com/yd/email/api/service/ApiEmailFileService.java
View file @
da3ce69a
...
...
@@ -3,8 +3,14 @@ package com.yd.email.api.service;
import
com.yd.common.result.Result
;
import
com.yd.email.feign.request.ApiExportVariableExcelRequest
;
import
com.yd.email.feign.request.ApiImportVariableExcelRequest
;
import
com.yd.email.feign.response.ApiExportVariableExcelResponse
;
import
com.yd.email.feign.response.ApiImportVariableExcelResponse
;
import
org.springframework.web.multipart.MultipartFile
;
public
interface
ApiEmailFileService
{
Result
<
ApiExportVariableExcelResponse
>
exportVariableExcel
(
ApiExportVariableExcelRequest
request
);
Result
<
ApiImportVariableExcelResponse
>
importVariableExcel
(
MultipartFile
file
,
ApiImportVariableExcelRequest
request
);
}
yd-email-api/src/main/java/com/yd/email/api/service/impl/ApiEmailContactImportServiceImpl.java
View file @
da3ce69a
...
...
@@ -59,7 +59,7 @@ public class ApiEmailContactImportServiceImpl implements ApiEmailContactImportSe
@Override
public
Result
<
ApiEmailContactImportSelectAddResponse
>
add
(
ApiEmailContactImportSelectAddRequest
request
)
{
ApiEmailContactImportSelectAddResponse
response
=
new
ApiEmailContactImportSelectAddResponse
();
String
sessionId
=
""
;
String
sessionId
=
request
.
getSessionId
()
;
if
(
StringUtils
.
isBlank
(
request
.
getSessionId
()))
{
//当前会话id(前端缓存有值就传,没有值后端生成返回给前端存入前端缓存)
...
...
@@ -75,7 +75,7 @@ public class ApiEmailContactImportServiceImpl implements ApiEmailContactImportSe
emailContactImport
.
setImportBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_EMAIL_CONTACT_IMPORT
.
getCode
()));
emailContactImport
.
setContactBizId
(
dto
.
getContactBizId
());
emailContactImport
.
setCcEmail
(
dto
.
getCcEmails
());
emailContactImport
.
setReceiveEmail
(
dto
.
get
Contact
Email
());
emailContactImport
.
setReceiveEmail
(
dto
.
getEmail
());
emailContactImport
.
setSessionId
(
finalSessionId
);
emailContactImport
.
setSource
(
0
);
return
emailContactImport
;
...
...
yd-email-api/src/main/java/com/yd/email/api/service/impl/ApiEmailFileServiceImpl.java
View file @
da3ce69a
...
...
@@ -5,8 +5,10 @@ import com.yd.email.api.service.ApiEmailFileService;
import
com.yd.email.api.service.ApiEmailVariableGroupService
;
import
com.yd.email.feign.dto.ApiEmailVariableDto
;
import
com.yd.email.feign.request.ApiExportVariableExcelRequest
;
import
com.yd.email.feign.request.ApiImportVariableExcelRequest
;
import
com.yd.email.feign.response.ApiEmailVariableGroupDetailResponse
;
import
com.yd.email.feign.response.ApiExportVariableExcelResponse
;
import
com.yd.email.feign.response.ApiImportVariableExcelResponse
;
import
com.yd.oss.feign.client.ApiExcelFeignClient
;
import
com.yd.oss.feign.dto.ExportParam
;
import
com.yd.oss.feign.dto.ExportResult
;
...
...
@@ -15,6 +17,8 @@ import lombok.extern.slf4j.Slf4j;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Objects
;
...
...
@@ -62,5 +66,16 @@ public class ApiEmailFileServiceImpl implements ApiEmailFileService {
return
Result
.
success
(
response1
);
}
/**
* 导入-变量excel
* @param file
* @param request
* @return
*/
@Override
public
Result
<
ApiImportVariableExcelResponse
>
importVariableExcel
(
MultipartFile
file
,
ApiImportVariableExcelRequest
request
)
{
return
null
;
}
}
yd-email-api/src/main/java/com/yd/email/api/service/impl/ApiEmailSendServiceImpl.java
View file @
da3ce69a
...
...
@@ -196,21 +196,37 @@ public class ApiEmailSendServiceImpl implements ApiEmailSendService {
EmailTask
mailTask
=
buildEmailTask
(
request
);
//邮件任务唯一业务ID
String
taskBizId
=
mailTask
.
getTaskBizId
();
//变量分组唯一业务ID不为空,来源是1-excel导入联系人 为空是0-选择联系人导入
Integer
source
=
StringUtils
.
isNotBlank
(
request
.
getVariableGroupBizId
())
?
1
:
0
;
// 保存收件人信息
//根据当前当前会话id和数据来源查询导入数据
Result
<
List
<
EmailTaskRecipients
>>
result
=
apiEmailTaskRecipientsService
.
queryEmailTaskRecipientsBySessionId
(
taskBizId
,
mailTask
.
getStatus
(),
request
.
getSessionId
(),
source
);
List
<
EmailTaskRecipients
>
recipientsList
=
result
.
getData
();
//立即发送
sendImmediatelyEmail
(
mailTask
,
recipientsList
);
//TODO 变量
//立即发送->发送给自己。发件人和收件人都是自己
//调用邮件服务发送邮件入参DTO
ApiSendMailDto
apiSendMailDto
=
new
ApiSendMailDto
();
BeanUtils
.
copyProperties
(
mailTask
,
apiSendMailDto
);
//根据发件人唯一业务ID获取发件人信息和发件人绑定的服务商信息
Result
<
ApiEmailSenderConfigDto
>
result
=
apiEmailSenderConfigService
.
getApiEmailSenderConfigDto
(
mailTask
.
getSenderBizId
());
ApiEmailSenderConfigDto
apiEmailSenderConfigDto
=
result
.
getData
();
BeanUtils
.
copyProperties
(
apiEmailSenderConfigDto
,
apiSendMailDto
);
//收件人邮箱(单个)
apiSendMailDto
.
setReceiveEmail
(
mailTask
.
getSendEmail
());
//抄送人邮箱列表
// apiSendMailDto.setCcEmailList(ccEmailList);
//邮件内容
if
(
StringUtil
.
hasPlaceholdersSimple
(
apiSendMailDto
.
getContent
()))
{
//检测内容是否有占位符,有占位符就替换具体内容,每收件人的占位符内容是不一样的。
// apiSendMailDto.setContent(StringUtil.replacePlaceholders(apiSendMailDto.getContent(),
// recipient.getVariables()));
}
// 调用邮件服务发送邮件
try
{
apiEmailService
.
sendMail
(
apiSendMailDto
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
response
.
setScheduleTime
(
request
.
getScheduleTime
());
response
.
setTaskBizId
(
taskBizId
);
return
Result
.
success
(
response
);
}
/**
* 构造邮箱任务对象
* @param request
...
...
yd-email-feign/src/main/java/com/yd/email/feign/client/ApiEmailFileFeignClient.java
View file @
da3ce69a
...
...
@@ -3,11 +3,16 @@ package com.yd.email.feign.client;
import
com.yd.common.result.Result
;
import
com.yd.email.feign.fallback.ApiEmailFileFeignFallbackFactory
;
import
com.yd.email.feign.request.ApiExportVariableExcelRequest
;
import
com.yd.email.feign.request.ApiImportVariableExcelRequest
;
import
com.yd.email.feign.response.ApiExportVariableExcelResponse
;
import
com.yd.email.feign.response.ApiImportVariableExcelResponse
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.http.MediaType
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.multipart.MultipartFile
;
/**
* 邮箱服务-邮件文件信息Feign客户端
...
...
@@ -22,4 +27,14 @@ public interface ApiEmailFileFeignClient {
*/
@PostMapping
(
"/export/excel/variable"
)
Result
<
ApiExportVariableExcelResponse
>
exportVariableExcel
(
@Validated
@RequestBody
ApiExportVariableExcelRequest
request
);
/**
* 导入-变量excel
* @param file
* @param request
* @return
*/
@PostMapping
(
value
=
"/import/excel/variable"
,
consumes
=
MediaType
.
MULTIPART_FORM_DATA_VALUE
)
Result
<
ApiImportVariableExcelResponse
>
importVariableExcel
(
@RequestParam
(
"file"
)
MultipartFile
file
,
@Validated
ApiImportVariableExcelRequest
request
);
}
yd-email-feign/src/main/java/com/yd/email/feign/dto/ApiEmailContactDto.java
View file @
da3ce69a
...
...
@@ -13,7 +13,7 @@ public class ApiEmailContactDto {
/**
* 收件人邮箱(单个邮箱)
*/
private
String
contactE
mail
;
private
String
e
mail
;
/**
* 抄送人邮箱(多个邮箱,分号分隔)
...
...
yd-email-feign/src/main/java/com/yd/email/feign/fallback/ApiEmailFileFeignFallbackFactory.java
View file @
da3ce69a
...
...
@@ -3,10 +3,13 @@ package com.yd.email.feign.fallback;
import
com.yd.common.result.Result
;
import
com.yd.email.feign.client.ApiEmailFileFeignClient
;
import
com.yd.email.feign.request.ApiExportVariableExcelRequest
;
import
com.yd.email.feign.request.ApiImportVariableExcelRequest
;
import
com.yd.email.feign.response.ApiExportVariableExcelResponse
;
import
com.yd.email.feign.response.ApiImportVariableExcelResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.cloud.openfeign.FallbackFactory
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.multipart.MultipartFile
;
/**
* 邮箱服务-邮件文件信息Feign降级处理
...
...
@@ -21,6 +24,12 @@ public class ApiEmailFileFeignFallbackFactory implements FallbackFactory<ApiEmai
public
Result
<
ApiExportVariableExcelResponse
>
exportVariableExcel
(
ApiExportVariableExcelRequest
request
)
{
return
null
;
}
@Override
public
Result
<
ApiImportVariableExcelResponse
>
importVariableExcel
(
MultipartFile
file
,
ApiImportVariableExcelRequest
request
)
{
return
null
;
}
};
}
}
yd-email-feign/src/main/java/com/yd/email/feign/request/ApiImportVariableExcelRequest.java
0 → 100644
View file @
da3ce69a
package
com
.
yd
.
email
.
feign
.
request
;
import
lombok.Data
;
@Data
public
class
ApiImportVariableExcelRequest
{
/**
* 当前会话id(前端缓存有值就传,没有值后端生成返回给前端存入前端缓存)
*/
private
String
sessionId
;
}
yd-email-feign/src/main/java/com/yd/email/feign/request/ApiSendEmailRequest.java
View file @
da3ce69a
...
...
@@ -10,6 +10,7 @@ public class ApiSendEmailRequest {
/**
* 发件人唯一业务ID
*/
@NotBlank
(
message
=
"发件人唯一业务ID不能为空"
)
private
String
senderBizId
;
/**
...
...
yd-email-feign/src/main/java/com/yd/email/feign/response/ApiImportVariableExcelResponse.java
0 → 100644
View file @
da3ce69a
package
com
.
yd
.
email
.
feign
.
response
;
import
lombok.Data
;
@Data
public
class
ApiImportVariableExcelResponse
{
/**
* 当前会话id(前端缓存有值就传,没有值后端生成返回给前端存入前端缓存)
*/
private
String
sessionId
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment