이메일 수신자명 처리 로직 추가 - resolveEmailUsername 메서드 구현
eapim-portal CI (from elink-portal-common) / build (push) Has been cancelled

This commit is contained in:
Rinjae
2026-08-07 13:15:18 +09:00
parent 7cea4c648b
commit 2bd31eabf0
@@ -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)가 먼저 넣은 값이 있으면 그대로 둔다(오버라이드).