MimeMessageHelper의 setText(), EmailUtil.java의 sendMail() 메서드 오버로딩

김학준·2024년 6월 17일
0

게시판

목록 보기
20/44

EmailUtil.java의 메서드 sendMail()을 보면 메서드가 오버로딩 되어있는 것을 볼 수 있다. 왜 그런 것일까?

회원이 클릭할 수 있는 링크가 담긴 이메일을 받기 위해서는 이메일 본문을 HTML 태그 형식으로 보내야 한다. 그렇게 하기 위해서는 우선 MimeMessageHelpersetText메서드를 살펴봐야 한다.

public void setText(String text) throws MessagingException {
  setText(text, false);
}

/**
	 * Set the given text directly as content in non-multipart mode
	 * or as default body part in multipart mode.
	 * The "html" flag determines the content type to apply.
	 * <p><b>NOTE:</b> Invoke {@link #addInline} <i>after</i> {@code setText};
	 * else, mail readers might not be able to resolve inline references correctly.
	 * @param text the text for the message
	 * @param html whether to apply content type "text/html" for an
	 * HTML mail, using default content type ("text/plain") else
	 * @throws MessagingException in case of errors
	 */
public void setText(String text, boolean html) throws MessagingException {
  // ...
}

주석을 보면 @param html에 대한 설명이 있는데 요약하면 다음과 같다.

  • content type "text/html"html의 값 true
  • content type "text/plain"html의 값 false

실제로도 매개 변수가 하나만 있는 setText(String text)를 사용하면 "text/plain" 형식으로 html 본문이 구성된다. 이때, setText(String text) 안에는 setText(String text, boolean html)가 있는 것을 확인할 수 있다. 이와 같이, 어떤 메서드의 파라미터를 기본값으로 지정("text/plain")해주고 싶을 때와 아닌 경우를 구별할 때 이러한 메서드 오버로딩 방식이 많이 사용된다.

0개의 댓글