옛날에 한번 jsp 로 이메일 보내기 글을 쓴적있다.
근데 그냥 2탄으로 한번 써본다. 재공부~
지금 만드는 이메일 전송법을 대충 설명하자면,
로그인시 해당 유저의 존재여부를 확인하고 있다면
인증코드를 발송하기 위함.
여튼 중요한것은 Email 보내는 거니까 거기에만 집중해보자.
일단 pom.xml 에 Email 을 보내기위한 dependency 를 추가해주자!
아 참고로 메이븐임..
<!-- https://mvnrepository.com/artifact/javax.mail/javax.mail-api -->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.1</version>
</dependency>
추가해주고 인텔리제이 기준 우측 상단에 메이븐 업데이트 버튼이 생성되는데 업데이트를 해주자
다음으로 root-context.xml 로 가서 Email 을 보내기 위한 bean 설정을 해주자.
<!-- mailSender -->
<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="본인 이메일 입력" />
<property name="password" value="본인 비밀번호 입력" />
<property name="javaMailProperties">
<props>
<prop key="mail.transport.protocol">smtp</prop>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
<prop key="mail.debug">true</prop>
</props>
</property>
</bean>
본인의 이메일과 비밀번호를 입력하고 중요한 점!
gmail의 경우 해당 계정 설정 - 보안이 낮은 앱 허용여부 > 허용을 해야한다.
2022-05부터 막힌다고 하는데 그땐 다른방법을 찾아보겠음.
다음 메일을 보내기 위한 파일로 이동후 ex) controller or service
그곳에 해당 bean 을 주입시켜주자

@AutoWired 는 주입이다.
@Qualifier 을 사용한 이유는 동일한 타입을 가진 baen 이 존재한다면 exception을 발생시킬 수 있기 때문에
정확하게 표현해두기 위해 사용.
괄호 안의 내용은 해당 빈의 ID 값.
자 다음으론 이제 메일을 발송 시켜보자.
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, "UTF-8");
messageHelper.setTo("보낼 이메일 주소");
messageHelper.setFrom(new InternetAddress(((JavaMailSenderImpl) mailSender).getUsername(), "보내는 사람 명", "UTF-8"));
messageHelper.setSubject("보낼 제목");
messageHelper.setText("보낼 메세지", true);
mailSender.send(mimeMessage);
이렇게 하고 툴이 시키는대로 try catch 문을 사용해서 씌워주면 된다. Exception 을 알아서 잡아줌
인코딩 UTF-8 빼고 해당 "" 자리엔 당연히 변수를 넣을 수 있으니 각자 원하는 방식대로 넣자.
참고로 .setText에 뒤에 있는 ture는 해당 String 을 Html 화 시킬거냐 아니냐를 선택하는 곳이니 html 으로 원한다면 ture, 아니라면 false를 하자.
만약 resources 파일의 내용을 가져와서 보내고 싶다면 해당파일을 불러, while 문을 돌리면서 StringBuffer 에 저장해서 출력해주면 된다. > 이건 나중에 업데이트하겠음
그럼 2만~
'Spring > Spring framework' 카테고리의 다른 글
| 스프링 빈 자바코드로 직접 설정 (0) | 2022.12.21 |
|---|---|
| Spring message arguments (0) | 2022.03.30 |
| Spring message properties (0) | 2022.01.07 |
| Spring MVC Request life cycle (0) | 2021.12.24 |
| 인터셉터 (0) | 2021.08.19 |
| boot06 부트스트랩 이용한 게시판 만들기 (0) | 2021.08.11 |