진이의 Developer Story

Spring JavaMailSender 를 이용하여 메일보내기 본문

Java/Spring

Spring JavaMailSender 를 이용하여 메일보내기

JIN3260 2016. 11. 17. 12:03
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
		<property name="host" value="" /> // smtp 서버주소
		<property name="port" value="" /> // port : smtp 서버포트
		<property name="username" value="" /> // 사용자 아이디
		<property name="password" value="" /> // 사용자 비밀번호
		<property name="defaultEncoding" value="UTF-8" /> // 인코딩 방식
		
		<property name="javaMailProperties">
			<props>
				<prop key="mail.transport.protocol">smtp</prop> // 메일서버 프로토콜 (smtp)
				<prop key="mail.smtp.auth">false</prop> // 인증여부 (false라면 미인증, 단 서버에서 허용IP 설정이 되어야 함.)
				<prop key="mail.smtp.starttls.enable">true</prop>
			</props>
		</property>
	</bean>

* username 과 password는 인증없이 사용한다면 공백으로 두어도 됩니다.

@Resource(name = "mailSender")
    private JavaMailSender javaMailSender; // DI

    MimeMessagePreparator preparator = new MimeMessagePreparator() {
        @Override
        public void prepare(MimeMessage paramMimeMessage) throws Exception {
            MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(paramMimeMessage, true, "UTF-8");

            mimeMessageHelper.setTo("<테스트> receiver@test.com"); // 받는사람
            mimeMessageHelper.setFrom("<테스트> sender@test.com"); // 보내는사람
            mimeMessageHelper.setSubject("jin3260 테스트 메일"); // 메일 제목
            mimeMessageHelper.setText("<html><body><img src='cid:image'></body></html>", true); // 메일 내용

            FileSystemResource res = new FileSystemResource(new File("c:\\image.jpg")); // 리소스 이미지
            helper.addInline("image", res); // 이미지 등록
        };
    };
            
    try {
         javaMailSender.send(preparator); // 메일 전송
    } catch (MailException me) {
        // 예외처리 코드 (실패시 로그를 남긴다는 지...)
     }

위에서 만든 빈을 DI해줍니다.

Comments