티스토리 뷰
1.pom.xml추가하기
<!-- 이메일 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.5.4</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.3</version>
</dependency>
2. 이메일 보낼 계정
[Google계정관리] > 좌측의 [보안]카테고리 > 보안 수준이 낮은 앱의 액세스 허용
3.[기본 설정]@Configuration 로 계정 연결 및 메일방식 세부설정 정하기
MailConig.java
@Configuration
public class MailConfig {
@Bean
public static JavaMailSender mailSender() {
JavaMailSenderImpl jms = new JavaMailSenderImpl();
jms.setHost("smtp.gmail.com");//google smtp 서버 설정(고정)
jms.setPort(587);//네이버는 465(고정) //메일 포트
jms.setUsername("/* 보내는 사람의 이메일 */");
jms.setPassword("/*보내는 사람의 이메일의 패스워드*/");
//세부사항
Properties prop = new Properties();
prop.setProperty("mail.transport.protocol", "smtp");
prop.setProperty("mail.smtp.auth", "true");
prop.setProperty("mail.smtp.starttls.enable", "true");
prop.setProperty("mail.debug", "true");
jms.setJavaMailProperties(prop);
return jms;
}
}
xml로 하는 방법도 있지만 어노테이션을 사용하여 만들었다.
smtp : 메일전송 프로토콜
mail.smtp.auth: 사용자 인증을 할 것인가
mail.smtp.starttls.enable : 보안 처리를 할 것인가
mail.debug : 콘솔에 내용이 출력된다
4.컨트롤러
MailController.java
@Controller
public class MailController {
@Autowired
MailService ms;
@GetMapping("sendmail")
public void sendMail(HttpServletResponse response) throws Exception {
StringBuffer sb = new StringBuffer();
sb.append("<h1>제품소개</h1>");
sb.append("<a href="주소">");/*~보낼 내용~*/
sb.append("ex)<img src=\"http://blog.jinbo.net/attach/615/200937431.jpg\">");
sb.append("</a>");
String msg = sb.toString();
// ms.sendMail("받을 사람 이메일","제목","내용");
ms.sendMail("/*받을 사람 이메일*/", "(제목)광고", msg);
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print("메일이 전송되었습니다");
}
서비스에서 sendMail()메소드로 메일 보내기를 할 것이다.
여기서 throws한것은 out.print를 사용하기 위함.
-->메일을 보내고 나서 html에 뜸
5.서비스
MailService
@Service
public class MailService {
@Autowired
JavaMailSender mailsender;// 보내는 사용자
// 받는 사용자
public void sendMail(String to, String subject, String body) {
MimeMessage message = mailsender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message, true, "utf-8");
helper.setTo(to);
helper.setSubject(subject);
helper.setText(body, true);
mailsender.send(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}
helper.setText(body, true); 여기서 true를 쓰면 html문으로 처리해주겠다는 것이다(*없으면 텍스트로 받음)
mailsender은 위의 MailConfig에서 보내는 사용자를 설정한 빈을 받는다
MimeMessage 는 우리가 보내고자하는 데이터를 보조하는 역할을 해준다.
->전송하고자 하는 목적지
->제목
->내용
message를 바로 쓰는게 아니라 이것을 통해서 또하나 변경을 하고 그것을 통해서 세팅을 할 것이다.
==>MimeMessageHelper helper = new MimeMessageHelper(message, true, "utf-8"); |
MimeMessageHelper 이 실질적으로 사용자에게 보내기 위한 내용들을 저장
>그것을 만들기 위해서 MimeMessage가 필요했다.
>여기서 true는 멀티파트도 허용하겠다는 것
최종적으로 mailsender.send(message); 로 메일을 보낸다.
이렇게 하면 /sendmail로 가면 메일이 전송된다.
'Spring' 카테고리의 다른 글
[스프링]ajax 이용해보기 (0) | 2021.11.17 |
---|---|
[스프링]이메일 보내기(2-이메일 인증) (0) | 2021.11.16 |
[스프링]업로드한 파일 띄우기,다운로드 기능 (0) | 2021.11.15 |
[스프링]파일 업로드 (0) | 2021.11.15 |
스프링_@RequestParam 간단하게 사용해보기 (0) | 2021.05.25 |
- Total
- Today
- Yesterday
- link href
- NAV
- 합격
- div
- application
- Redirect
- pageContext
- id
- 정처기
- Declaration
- CLASS
- RequestDispatcher
- Margin
- 정처산기
- forward
- span
- Expression
- getParameter
- jsp
- request
- 실기
- 독학
- padding
- 정보산업처리기사
- 자격증
- dl
- scriptlet
- session
- this.
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |