● 기본 코딩
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
public class EmailSender {
public static void main(String[] args) {
//발신자 이메일 계정 정보(지메일 계정)
final String username = "your_email@gmail.com";
final String password = "your_password";
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com"); // Gmail SMTP 서버
props.put("mail.smtp.port", "587");
//지메일 사용자 세션 생성
Session session = Session.getInstance(props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
// 메시지 생성
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(username));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient@example.com"));
message.setSubject("테스트 메일 제목");
message.setText("안녕하세요,\n\n이것은 자바 메일 API를 사용한 테스트 메일입니다.");
// 메일 전송
Transport.send(message);
System.out.println("메일이 성공적으로 전송되었습니다.");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
● 컴파일 / 사전 javax.mail-1.6.2.jar 파일 인터넷에서 다운로드 및 소스 경로와 동일한 위치에 배치
javac -cp ./javax.mail-1.6.2.jar EmailSender.java
● 실행 / 실행 할 때는 현재 경로 추가(라이브러리 추가 시 구문은 ":")
java -cp ./:./javax.mail-1.6.2.jar EmailSender
● 스프링 기반, 파일 첨부 발송 / 사전 준비 라이브러리 파일
- javax.mail-1.6.2.jar
- spring-beans-4.3.15.RELEASE.jar
- spring-context-support-4.3.15.RELEASE.jar
- spring-core-4.3.15.RELEASE.jar
● 스프링 기반 메일 발송, 기본 구문
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.springframework.mail.javamail.MimeMessageHelper;
public class EmailSender2 {
public static void main(String[] args) {
Properties props = System.getProperties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", 587);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
//props.setProperty("mail.smtp.ssl.protocols", "TLSv1.2"); //TLS 관련 오류 발생 시 강제 설정
final String username = "지메일 계정 아이디";
final String password = "지메일 계정 비밀번호";
String subject = "테스트 이메일";
String contents = "안녕하세요,\n\n이것은 Java를 이용한 테스트 이메일입니다.";
boolean isHtml = false;
Session session = Session.getInstance(props, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
MimeMessage mimeMessage = new MimeMessage(session);
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
//mimeMessage.setFrom(new InternetAddress(username));
//mimeMessage.setSubject(subject);
//mimeMessage.setText(contents);
mimeMessageHelper.setSentDate(new Date());
mimeMessageHelper.setSubject(subject);
mimeMessageHelper.setText(contents, isHtml);
mimeMessage.setRecipients(Message.RecipientType.TO, InternetAddress.parse("jubhak@gmail.com"));
//mimeMessage.setRecipients(Message.RecipientType.CC, ccEmailAddrsString);
//mimeMessage.setRecipients(Message.RecipientType.BCC, bccEmailAddrsString);
File directory = new File("/경로/");
File[] files = directory.listFiles();
List<File> attachedFiles = new ArrayList<>();
//해당 경로 모든 파일 첨부
if(files != null) {
for(File file : files) {
attachedFiles.add(file);
}
}
System.out.println("파일 크기 : " + attachedFiles.size());
if(attachedFiles != null && attachedFiles.size() > 0) {
for(File attachedFile : attachedFiles) {
mimeMessageHelper.addAttachment(attachedFile.getName(), attachedFile);
}
}
Transport.send(mimeMessage);
System.out.println("이메일이 성공적으로 전송되었습니다.");
} catch (MessagingException e) {
System.out.println("이메일 전송 중 오류가 발생했습니다: " + e.getMessage());
e.printStackTrace();
}
}
}
● 스프링 기반 메일 발송, 컴파일
javac -cp ./javax.mail-1.6.2.jar:./spring-beans-4.3.15.RELEASE.jar:./spring-context-support-4.3.15.RELEASE.jar:./spring-core-4.3.15.RELEASE.jar EmailSender2.java
● 스프링 기반 메일 발송, 실행
java -cp ./:./javax.mail-1.6.2.jar:./spring-beans-4.3.15.RELEASE.jar:./spring-context-support-4.3.15.RELEASE.jar:./spring-core-4.3.15.RELEASE.jar EmailSender2
끗.
'SERVER SIDE > JAVA' 카테고리의 다른 글
JAVA - 지메일 SMTP 이용 메일 보내기 TLS 오류 (1) | 2025.04.08 |
---|---|
보일러플레이트 코드(Boilerplate Code) (0) | 2025.02.10 |