낙서장/Spring

Spring Mail Library Setting(1)

RunTimeException 2022. 6. 10. 10:55

Spring java 

package org.toco.main.controller;

import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.toco.main.vo.MailVO;

@Controller
public class HomeController {
	
	@Autowired
	private JavaMailSender mailSender;
	
	/**
	 * @mailVO = 받는 사람 이메일 정보와 메일 제목|내용을 받는다. 
	 */
	@RequestMapping("mailSending.do")
	public String mailSending(MailVO mailVO) {
		try {
			MimeMessage message = mailSender.createMimeMessage();
			MimeMessageHelper messageHelper = new MimeMessageHelper(message, true, "UTF-8");
			messageHelper.setFrom(new InternetAddress("sendEmail@gmail.com", "Faker")); // 보낼 사람 이메일, 보낼 사람 닉네임
			messageHelper.setTo(mailVO.getToMail()); //받는 사람 이메일
			messageHelper.setSubject(mailVO.getTitle()); //메일 제목
			messageHelper.setText(mailVO.getContent()); //메일 내용
			
			mailSender.send(message);
		}catch(Exception e) {
			e.printStackTrace();
		}
		return "index";
	}
	
}

 

Spring Setting XML

	<!-- Gmail -->
	<bean id="mailSender"
		class="org.springframework.mail.javamail.JavaMailSenderImpl">
		<property name="host" value="smtp.gmail.com" />
		<property name="port" value="587" />
		<property name="username" value="yourEmgail@gmail.com" />
		<property name="password" value="appPassword" />
		<property name="javaMailProperties">
			<props>
				<prop key="mail.smtp.starttls.enable">true</prop>
				<prop key="mail.smtps.ssl.checkserveridentity">true</prop>
				<prop key="mail.smtp.auth">true</prop>
			</props>
		</property>
	</bean>

Maven

		<!-- Java Mail API -->
		<dependency>
			<groupId>javax.mail</groupId>
			<artifactId>mail</artifactId>
			<version>1.4.3</version>
		</dependency>
        
        <dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
			<version>${org.springframework-version}</version>
		</dependency>