이메일 수신자명 처리 로직 추가 - resolveEmailUsername 메서드 구현
eapim-portal CI (from elink-portal-common) / build (push) Has been cancelled
eapim-portal CI (from elink-portal-common) / build (push) Has been cancelled
This commit is contained in:
@@ -103,7 +103,7 @@ public class MessageSendService {
|
||||
String emailMessage = buildMessage(template.getEmailTemplate(), messageParams);
|
||||
emailRequest.setMessage(emailMessage);
|
||||
emailRequest.setRequestDate(LocalDateTime.now());
|
||||
emailRequest.setUsername(user.getUsername());
|
||||
emailRequest.setUsername(resolveEmailUsername(user));
|
||||
emailRequest.setEmail(user.getUserId());
|
||||
emailRequest.setEaiInterfaceId(mailEaiInterfaceId);
|
||||
emailRequest.setServiceId(portalProperties.get("djb.ums.email.tx_id"));
|
||||
@@ -132,6 +132,22 @@ public class MessageSendService {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* PTL_MESSAGE_REQUEST.USERNAME 에 넣을 이메일 수신자명을 결정한다.
|
||||
* 이메일 발송은 수신 주소(userId)의 '@' 앞 아이디 부분을 사용하고,
|
||||
* 주소 형식이 아니면 기존 수신자 이름을 그대로 쓴다.
|
||||
*/
|
||||
private String resolveEmailUsername(MessageRecipient user) {
|
||||
String address = user.getUserId();
|
||||
if (StringUtils.hasText(address)) {
|
||||
int atIndex = address.indexOf('@');
|
||||
if (atIndex > 0) {
|
||||
return address.substring(0, atIndex);
|
||||
}
|
||||
}
|
||||
return user.getUsername();
|
||||
}
|
||||
|
||||
private void updateMessageParams(MessageRecipient user, Map<String, String> messageParams) {
|
||||
// 공통 자동주입. 대문자 별칭(USER_ID/USER_NAME)은 DB 템플릿 변수 표기와 맞춘다.
|
||||
// putIfAbsent 이므로 개별 이벤트(createEvent)가 먼저 넣은 값이 있으면 그대로 둔다(오버라이드).
|
||||
|
||||
Reference in New Issue
Block a user