본문 바로가기
Language/Java

[JAVA] 여러 사람에게 메일 발송하는 방법

by 나비와꽃기린 2016. 10. 28.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.



이전 소스에서 별로 달라진 것은 없습니다. 

자세한 설명은 소스에 주석으로 달아놨습니다.

주석 참고해서 소스 이해해주시면 될 것 같네요~~~~~


(메일발송에 대한 이전 포스팅. 안보고 오셨다면 보고 와주세요~ >>http://mkil.tistory.com/339 )

 mimeMessage를 이용해 수신자를 설정할 때 javax.mail.internet.InternetAddress을 사용하면 됩니다. 
상단에 있었던 recipient 한 줄을 삭제하고 하단에 InternetAddress[] 부분을 아래와 같이 수정합니다.

@Controller
public class MailController {

/** 자바 메일 발송 
 * @throws MessagingException 
 * @throws AddressException **/
@RequestMapping(value = "/mailSender")
public void mailSender(HttpServletRequest request, ModelMap mo) throws AddressException, MessagingException {
	
	// 네이버일 경우 smtp.naver.com 을 입력합니다.
	// Google일 경우 smtp.gmail.com 을 입력합니다.
	String host = "smtp.naver.com";
	
	final String username = "XXXXXXXXXX";       //네이버 아이디를 입력해주세요. @nave.com은 입력하지 마시구요.
	final String password = "YYYYYYYYYY";   //네이버 이메일 비밀번호를 입력해주세요.
	int port=465; //포트번호
	 
	// 메일 내용
	String subject = "메일테스트"; 					  //메일 제목 입력해주세요.
	String body = username+"님으로 부터 메일을 받았습니다."; //메일 내용 입력해주세요.
	 
	Properties props = System.getProperties(); // 정보를 담기 위한 객체 생성
	 
	// SMTP 서버 정보 설정
	props.put("mail.smtp.host", host);
	props.put("mail.smtp.port", port);
	props.put("mail.smtp.auth", "true");
	props.put("mail.smtp.ssl.enable", "true");
	props.put("mail.smtp.ssl.trust", host);
	   
	//Session 생성
	Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
		String un=username;
		String pw=password;
		protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
			return new javax.mail.PasswordAuthentication(un, pw);
		}
	});
	session.setDebug(true); //for debug
	   
	Message mimeMessage = new MimeMessage(session); //MimeMessage 생성
	mimeMessage.setFrom(new InternetAddress("XXXXXXXXXX@naver.com")); //발신자 셋팅 , 보내는 사람의 이메일주소를 한번 더 입력합니다. 이때는 이메일 풀 주소를 다 작성해주세요.
	
	/********** 수정해야하는 부분(시작) **************/
	InternetAddress[] toAddr = new InternetAddress[10]; 
	toAddr[0] = new InternetAddress ("PPPPPPPPPP@mail.com");
	toAddr[1] = new InternetAddress ("YYYYYYYYYY@mail.com");
	toAddr[2] = new InternetAddress ("EEEEEEEEEE@mail.com");
	toAddr[3] = new InternetAddress ("QQQQQQQQQQ@mail.com");
	toAddr[4] = new InternetAddress ("AAAAAAAAAA@mail.com");
	toAddr[5] = new InternetAddress ("LLLLLLLLLL@mail.com");
	toAddr[6] = new InternetAddress ("SSSSSSSSSS@mail.com");
	toAddr[7] = new InternetAddress ("DDDDDDDDDD@mail.comm");
	toAddr[8] = new InternetAddress ("MMMMMMMMMM@mail.com");
	toAddr[9] = new InternetAddress ("UUUUUUUUUU@mail.com");

	//기존의 setRecipient() 메소드에서  setRecipients 로 수정되었습니다. 여러명에게 발송하는거라 s가 붙었네요.
	mimeMessage.setRecipients(Message.RecipientType.TO, toAddr ); //수신자 셋팅
	
	/********** 수정해야하는 부분(끝)**************/
	
	mimeMessage.setSubject(subject);  //제목셋팅
	mimeMessage.setText(body);        //내용셋팅
	Transport.send(mimeMessage); //javax.mail.Transport.send() 이용
	
}

소스보니 이해가셨나요?
toAddr에 설정되는 배열 변수 값들의 메일 착신자들에게
메일이가는 소스랍니다.

결과 확인은 이전 포스팅에도 보여드렸으니 여기까지만 작성하겠습니다………… 

다음은 순수 JAVA로 메일발송이 아닌 Spring framework를 사용한 메일발송을

해볼게요. >> (포스팅 예정~~~)