Spring Core/자질구래 2단계 인증 상태에서 smtp를 이용한 gmail 발송 - gmail을 이용해 smtp를 이용하려는 경우 아래와 같이 코드를 작성할 수 있다. @Bean public JavaMailSenderImpl mailSender() { JavaMailSenderImpl sender = new JavaMailSenderImpl(); sender.setHost("smtp.gmail.com"); sender.setPort(587); sender.setUsername("사용자 이메일"); // gmail 로그인 아이디 sender.setPassword("사용자 암호"); // gmail 로그인 암호 sender.setDefaultEncoding("utf-8"); Properties javaMailProperties = new Properties(); javaMailProperties.put("mail.smtp.auth", "true"); javaMailProperties.put("mail.smtp.starttls.enable", "true"); javaMailProperties.put("mail.smtp.ssl.trust", "smtp.gmail.com"); sender.setJavaMailProperties(javaMailProperties); return sender; } 일반적인 경우는 잘 전송할 수 있지만 만약 2단계 인증을 적용한 경우(새로운 기기에서 로그인할 때 스마트폰 등에서 2단계 인증을 처리하는 경우)라면 아래와 같은 오류가 발생한다. Caused by: javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted. Learn more at 535 5.7.8 https://support.google.com/mail/?p=BadCredentials n7sm24543569pff.59 - gsmtp 정확한 비밀번호를 넣었음에도 불구하고 확인하라고 하는데 이때는 위 링크(https://support.google.com/mail/?p=BadCredentials)에 나온 안내대로 애플리케이션을 위한 비빌번호를 새로 발급받아서 사용해야 한다. step 1> https://myaccount.google.com > 보안 > google에 로그인 선택 이때 아래처럼 앱 비밀번호가 없음으로 선택되어있다면 아직 비밀번호가 없는 경우이다. setp 2> 위 화면에서 없음을 선택하면 앱 비밀번호를 생성할 수 있다. 앱 선택 부분에서는 메일, 기기 선택 부분에서는 기타(맞춤 이름) 선택 후 "내 프로젝트의 SMTP"등 적절한 이름을 입력후 비밀번호를 생성한다. step 3> 다음 화면에서 16자리의 비밀번호를 확인한 후 이 비밀번호를 이용해서 메일 서비스를 진행한다. 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기모두의 코딩 Contents 당신이 좋아할만한 콘텐츠 Spring Security 기본 로그인 처리 2020.06.21 Hello Legacy Spring 2020.05.15 [오류처리]cannot be read or is not a valid ZIP file 2019.05.11 path variable과 email 전송 2019.04.18 댓글 2 + 이전 댓글 더보기