● 기본 코딩

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

 

 

 

끗.


+ Recent posts