Spring

쉼표로 구분 된 문자열을 사용하여 특정 열 List에서 값을 가져 오는 방법

기록만이살길 2021. 3. 8. 07:06
반응형

쉼표로 구분 된 문자열을 사용하여 특정 열 List에서 값을 가져 오는 방법

1. 질문(문제점):

여러 사람에게 이메일을 보내고 이메일 수신자 List에서 해당 이메일을 받고 싶습니다.

{
  "webId": 1001,
  "externalKey": null,
  "fromEmail": "test@gmail.com",
  "fromName": "TEST",
  "subject": "hello",
  "body": "This is a test mail",
  "status": 1,
  "sentDate": null,
  "sendAttempts": 1,
  "permanentFailure": false,
  "emailRecipientModel": [
  {
    "webId": 1101,
    "emailId": 1001,
    "emailAddress": "tets1@gmail.com",
    "status": "PENDING",
    "smtpStatusCode": 123,
    "recipientType": "TO"
  },
  {
    "webId": 1102,
    "emailId": 1001,
    "emailAddress": "test2@gmail.com",
    "status": "PENDING",
    "smtpStatusCode": 123,
    "recipientType": "TO"
  }
  ],
 }

이제 두 이메일 수신자의 이메일 주소를 얻고 싶습니다.

내 이메일 모델 클래스에서. emailRecipients List이 있습니다.

이제 이메일 주소 또는 모든 이메일 수신자를 얻는 방법.

이메일을 보내는 기능입니다.

MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message,true);
helper.setFrom(email.getFromEmail());
helper.setTo(email.getEmailRecipient().);      // need to add all the recipients here using comma separated list
helper.setSubject(email.getSubject());
helper.setText(email.getBody());
        
javaMailSender.send(message);

2. 해결방안:

MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message,true);
helper.setFrom(email.getFromEmail());

String recipients = email.getEmailRecipient().stream()
                                   .map(e -> e.getEmailAddress())
                                   .collect( Collectors.joining( "," ) );

helper.setTo(recipients);   
helper.setSubject(email.getSubject());
helper.setText(email.getBody());
        
javaMailSender.send(message);
65736402
반응형