Gmail Smtp 555 5.5.2 Syntax error
수업시간에 배운 JavaMailSender를 이용하여 테스트 이메일을 보내보려고 코드를 작성했다.
package com.kh.spring17;
import java.util.Properties;
import org.junit.Test;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
//목표 : 독립테스트로 이메일 발송
//1. 전송도구 : JavaMailSender(JavaMailSenderImpl)
//2. 메세지객체 : SimpleMailMessage
public class Test01 {
@Test
public void test() {
// 메세지 전송 도구 생성
JavaMailSenderImpl sender = new JavaMailSenderImpl();
sender.setHost("smtp.gmail.com"); //이용할 Vender IP 정보
sender.setPort(587); //이용할 Vender port 정보
sender.setUsername("보내는이메일@gmail.com"); //이용할 계정명
sender.setPassword("비밀번호"); //이용할 계정 비밀번호
Properties props = new Properties(); //문자열만 저장하는 Map
props.setProperty("mail.smtp.auth", "true"); //인증 설정
props.setProperty("mail.smtp.starttls.enable", "true"); //TLS 사용설정
props.setProperty("mail.smtp.debug", "true"); //디버깅 설정(옵션)
sender.setJavaMailProperties(props);
// 메세지 생성
SimpleMailMessage message = new SimpleMailMessage();
message.setTo(
"이메일1@hanmail.net",
"이메일2@naver.com"
);
message.setCc("이메일3@gmail.com"); //참조(Carbon Copy)
message.setBcc("이메일4@gmail.com"); //숨은 참조(Blind Carbon Copy)
message.setSubject("테스트 메일 제목");
message.setText("테스트 메일 본문");
// 메세지 전송
sender.send(message);
}
}
코드에 오타가 없는것을 확인하고.... JUnit으로 테스트를 돌렸는데

.....?
Syntax error가 나왔다.
보내는 계정 주소와 비밀번호도 확인하고 받는 계정 이메일 주소도 확인해봐도 정확한데....
혹시나 해서 오타가 있는지.. 임포트가 잘 되었는지 몇번이고 확인해봐도 잘못된게 없다.
내 코드가 잘못되었구나 싶어서 강사님이 수업시간에 써주신 코드를 그대로 가져다 붙여도 똑같이 에러가 난다.
도저히 혼자 해결하지 못할것 같아서 강사님께 도움을 청해보니 스프링 설정이 꼬인것 같다고 말씀해주셨다.
다른 사람들은 저 코드를 써도 전혀 문제가 안되는데 똑같은 코드를 복붙해도 나만 에러가 나는 상황이었다.

수업이 끝나고 스프링을 삭제하고 다시 설치해서 시도해봐도 똑같다.
스프링 설정 파일들을 전부 확인해봐도 잘못된것이 없었다.
혹시 몰라서 기존에 쓰던 스프링 3.9.11 버전에서 3.9.10 이나 3.9.12로 올려서 시도해봐도 똑같았다.
이쯤되니 스프링이 문제가 아니라는 느낌에 노트북에 스프링을 설치하고 시도해보니

한번에 성공했다.
단 한 글자도 바꾸지 않았는데 왜 PC에서는 안되는걸까..
계속 생각해보니 내 윈도우 계정명이 한글이라는 생각이 났다.
윈도우 계정명이 한글이니 디렉토리가 (C:\Users\계정명) 이런식으로 설정되어 있었다.
중간에 계정명을 영어로 변경한다고 해도 레지스트리도 만져야 하고
완벽하게 모든 경로가 설정되지 않을것이라는 생각에 윈도우를 포맷하고 재설치 할까 하다 기존 프로그램들을
처음부터 설정할 생각하니 아득해졌다...
급한 대로 로컬 계정을 영문으로 해서 새로 만들었다.
스프링을 다시 설치하고 코드를 넣으니

문제 없이 실행되었다!!!!
결국 내 PC 윈도우 계정명이 한글이었기 때문에 이런 에러가 발생한 것으로 보인다.
분명 오타가 없는데 Spring에서 555 5.5.2 에러가 난다면
혹시 윈도우 계정명이 한글인지 먼저 확인해보고 한글이라면 새로운 계정을 영어로 생성해서 시도하면 될 것 같다.
'Spring' 카테고리의 다른 글
Spring Boot Devtools 적용 방법 (0) | 2022.06.04 |
---|