728x90
자고 일어나자 마자 암호화/복호화 시스템 한번 보고 이메일 시스템 구축에 들어갔다.
암호화 자체는 잘 되지만, 어제랑 달리 암호가 어째서인지 바뀌진 않는다.
안 되는 건 아니지만, 뭔가 짜게 식은 느낌.
아무튼 메일 시스템 구축에 들어갔다.
https://kimvampa.tistory.com/93
https://velog.io/@gale4739/Spring-Boot-%EB%A9%94%EC%9D%BC-%EB%B0%9C%EC%86%A1
https://ajdahrdl.tistory.com/236
참고 사이트들
스프링 때 메일 시스템에 더해 파일까지 업로드할 수 있는 시스템을 만들고자 했다.
일단 현재로서는 정해진 파일만 넣지만,
관리자 페이지 팀원이랑 상의해서 관리자가 파일을 넣을 수 있게 만들고 싶다.
<!-- 이메일 디펜던시 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
우선 디펜더시 입력
# Mail Setting
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=
spring.mail.password=
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.auth=true
application.properties에도 입력
package com.moonBam.controller.member;
import javax.mail.internet.MimeMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.FileSystemResource;
import java.io.File; //강제 입력
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.mail.javamail.MimeMessagePreparator;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class Test {
@Autowired
private JavaMailSender javaMailSender;
private static final String FROM_EMAIL = "cjstkrhdfk666@gmail.com";
//단순 메일 전송
@RequestMapping("/test")
public String sendTestEmail() throws Exception {
String TO_EMAIL = "";
String EMAIL_SUBJECT = "메일 제목";
String EMAIL_BODY = "메일 내용";
sendEmail(FROM_EMAIL, TO_EMAIL, EMAIL_SUBJECT, EMAIL_BODY);
return "member/Login/loginMain";
}
//파일 첨부 메일 전송
@RequestMapping("/test2")
public String sendTestEmail2() throws Exception {
String TO_EMAIL = "";
String EMAIL_SUBJECT = "Email subject";
String EMAIL_BODY = "Email body";
sendEmailWithFiles(FROM_EMAIL, TO_EMAIL, EMAIL_SUBJECT, EMAIL_BODY);
return "member/Login/loginMain";
}
//이메일 전송 함수(수정 X)(람다식)
private void sendEmail(String from, String to, String subject, String body) throws Exception {
javaMailSender.send(
(MimeMessagePreparator) mimeMessage -> {
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true); // true: 멀티파트 메세지를 사용
messageHelper.setFrom(from);
messageHelper.setTo(to);
messageHelper.setSubject(subject);
messageHelper.setText(body, true); // true: html을 사용
});
}
//이메일 전송 함수(수정 X)(일반식)
// private void sendEmail(String from, String to, String subject, String body) throws Exception {
// javaMailSender.send(new MimeMessagePreparator() {
//
// @Override
// public void prepare(MimeMessage mimeMessage) throws Exception {
// MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true); // true: 멀티파트 메세지를 사용
// messageHelper.setFrom(from);
// messageHelper.setTo(to);
// messageHelper.setSubject(subject);
// messageHelper.setText(body, true); // true: html을 사용
// }
// });
// }
//이메일과 파일 전송 함수(수정 X)(일반식)
private void sendEmailWithFiles(String from, String to, String subject, String body) throws Exception {
javaMailSender.send(new MimeMessagePreparator() {
@Override
public void prepare(MimeMessage mimeMessage) throws Exception {
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true);
messageHelper.setFrom(from);
messageHelper.setTo(to);
messageHelper.setSubject(subject);
messageHelper.setText(body, true);
FileSystemResource file = new FileSystemResource(new File("c:\\a.png"));
messageHelper.addAttachment("c:\\a.png", file);
}
});
}
}
열받게 코드 붙여넣기만 하면 정렬이 박살이 난다.
그냥 이메일 전송에는 Vue 배우면서 알게 된 람다식,
파일 첨부 이메일 전송에는 기존 방식대로 코드를 작성했다.
코드의 기본 틀은 아래쪽으로 밀어넣고, 수정하는 부분만 위로 올렸다.
현재 내 실력으로 만들 수 있는 휠키를 덜 돌리는 코드다.
import java.io.File;는 왜 자동으로 안 돌아가는지 모르겠다.
파일 전송 함수에는 관리자가 넣고 싶은 파일을 넣되, 디폴트 파일을 설정해볼 예정이다.
다음에는 랜덤 6자리 정수를 인증코드로 보내고, 그걸 인증하는 시스템을 구현할 예정이다.
이걸 해야 가입이 되고, 가입이 되야 암호화/복호화가 원할하게 확인할 수 있다.
(이미 만든거 주석 처리하기에는 너무 많아서 어?쩔 수 없다.)
'팀프로젝트 > SpringBoot' 카테고리의 다른 글
스프링 부트 팀플)_20240311 (0) | 2024.03.11 |
---|---|
스프링 부트 팀플) 20240310_암호화/복호화 적용 (0) | 2024.03.10 |
스프링 부트 팀플) 20240310_이메일 인증 구현 (0) | 2024.03.10 |
스프링 부트 팀플) 20240309_암호화와 복호화 (0) | 2024.03.09 |
스프링 부트 팀플) 20240309_전환 시작 (0) | 2024.03.09 |