1. 개요
이 빠른 사용방법(예제)에서는 핵심 Java 메일 라이브러리를 사용하여 첨부 파일이 있거나 없는 이메일을 보내는 방법을 살펴보겠습니다.
2. 프로젝트 설정 및 의존성
이 기사에서는 Angus Mail 에 종속된 간단한 Maven 기반 프로젝트를 사용합니다 . 이것은 Jakarta Mail API 사양 의 Eclipse 구현입니다 .
<dependency>
<groupId>org.eclipse.angus</groupId>
<artifactId>angus-mail</artifactId>
<version>2.0.1</version>
</dependency>
최신 버전은 여기에서 찾을 수 있습니다 .
3. 일반 텍스트 및 HTML 이메일 보내기
먼저 이메일 서비스 Provider의 자격 증명으로 라이브러리를 구성해야 합니다. 그런 다음 보내기 위한 메시지를 구성하는 데 사용할 세션을 만듭니다 .
구성은 Java 속성 개체를 통해 이루어집니다.
Properties prop = new Properties();
prop.put("mail.smtp.auth", true);
prop.put("mail.smtp.starttls.enable", "true");
prop.put("mail.smtp.host", "smtp.mailtrap.io");
prop.put("mail.smtp.port", "25");
prop.put("mail.smtp.ssl.trust", "smtp.mailtrap.io");
위의 속성 구성에서 이메일 호스트를 Mailtrap으로 구성하고 서비스에서 제공하는 포트도 사용했습니다.
이제 사용자 이름과 비밀번호로 세션을 생성해 보겠습니다.
Session session = Session.getInstance(prop, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
사용자 이름과 비밀번호는 호스트 및 포트 매개변수와 함께 메일 서비스 제공업체에서 제공합니다.
이제 메일 세션 개체가 있으므로 전송을 위한 Mime 메시지를 만들어 보겠습니다 .
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("from@gmail.com"));
message.setRecipients(
Message.RecipientType.TO, InternetAddress.parse("to@gmail.com"));
message.setSubject("Mail Subject");
String msg = "This is my first email using JavaMailer";
MimeBodyPart mimeBodyPart = new MimeBodyPart();
mimeBodyPart.setContent(msg, "text/html; charset=utf-8");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(mimeBodyPart);
message.setContent(multipart);
Transport.send(message);
위의 스니펫에서 먼저 필요한 속성(to, from 및 subject)을 사용하여 메시지 인스턴스를 만들었습니다. 그 다음에는 우리의 메시지가 HTML 스타일이기 때문에 text/html 로 인코딩된 mimeBodyPart가 옵니다.
다음으로, 우리 가 만든 mimeBodyPart를 래핑하는 데 사용할 수 있는 MimeMultipart 개체 의 인스턴스를 만들었습니다 .
마지막으로 multipart 객체를 메시지 의 내용으로 설정하고 전송 객체 의 send()를 사용하여 메일 전송을 수행했습니다.
따라서 mimeBodyPart가 메시지 에 포함된 멀티파트 에 포함되어 있다고 말할 수 있습니다 . 이런 식으로 멀티파트는 하나 이상의 mimeBodyPart 를 포함할 수 있습니다 .
이것은 다음 섹션의 초점이 될 것입니다.
4. 이메일을 첨부하여 보내기
다음으로 첨부 파일을 보내려면 다른 MimeBodyPart를 만들고 파일을 첨부하기만 하면 됩니다.
MimeBodyPart attachmentBodyPart = new MimeBodyPart();
attachmentBodyPart.attachFile(new File("path/to/file"));
그런 다음 이전에 만든 MimeMultipart 개체 에 새 본문 부분을 추가할 수 있습니다 .
multipart.addBodyPart(attachmentBodyPart);
그게 우리가 해야 할 전부입니다.
다시 한 번 메시지 개체 의 내용으로 다중 부분 인스턴스를 설정 하고 마지막으로 메일 전송을 수행하기 위해 send()를 사용합니다 .
5. 이메일 텍스트 서식 지정
이메일 텍스트의 서식을 지정하고 스타일을 지정하기 위해 HTML 및 CSS 태그를 사용할 수 있습니다.
예를 들어 텍스트를 굵게 표시하려면 <b> 태그를 구현합니다. 텍스트를 색칠하기 위해 스타일 태그를 사용할 수 있습니다. 볼드와 같은 추가 속성을 원할 경우 HTML 태그와 CSS 태그를 결합할 수도 있습니다.
굵은 빨간색 텍스트를 포함하는 문자열을 생성해 보겠습니다 .
String msgStyled = "This is my <b style='color:red;'>bold-red email</b> using JavaMailer";
이 문자열은 이메일 본문에 보낼 스타일이 지정된 텍스트를 보관합니다.
6. 결론
이 기사에서는 Jakarta Mail API를 사용하여 첨부 파일이 있는 경우에도 이메일을 보내는 방법을 살펴보았습니다.
항상 그렇듯이 전체 소스 코드는 GitHub에서 사용할 수 있습니다 .