Django 내 SMTP를 활용한 이메일 발송 기능을 사용하고 있었는 데, 어느 날부터 발송이 안 되었다.
물론 단순히 진짜 계정 정보랑 비밀번호가 안 맞아서 생기는 문제는 아닌 걸 확인했다고 가정하고 쓰겠다. 이 문제가 왜 생겼나 설명하기 전에, 아마 90% 이상의 사람들은 파이썬을 이용하여 gmail을 보낼 수 있도록 세팅을 하다가, 이 옵션을 만졌을 것이다.
이 옵션을 켜야 파이썬 안에서 구글 이메일/비밀번호만 가지고 로그인해서 이메일을 보낼 수 있었다. 그런데, 이 옵션이 흥미로운 게 무려 2단계 인증을 꺼야 활성화가 되고, 구글에서도 사용을 권장하지 않는 꺼림칙한 옵션이다. 그래서 원인은 간단하다.
이 옵션이 22년 5월 30일자로 막혔기 때문이다. 이메일이랑 비번 가지고 접속하는 행위가 안 통한다.
그러면 어떻게 해야 하느냐? 안타깝게도 이 '보안 수준이 낮은 앱 액세스'라는 방법의 대안을 설명한 글은 쉽게 눈에 띄지 않았다. 약간의 구글링 끝 방법을 찾을 수 있었다.
https://levelup.gitconnected.com/an-alternative-way-to-send-emails-in-python-5630a7efbe84
An Alternative Way to Send Emails in Python
Stop using your Google password to programmatically log in and send emails in Python.
levelup.gitconnected.com
이 방법에 따르면, 우선 계정에 2단계 인증(SMS 인증 등등)을 건다. 그러면,
이제 보안 탭에서 '앱 비밀번호' 메뉴가 눈에 띌 것이다.
앱 선택에선 '기타'를 고르고, 이름은 원하는 거 아무거나 입력한다. 사실 이 부분은 뭘 선택하든 크게 상관 없어 보이긴 하는데, 그래도 '메일' '유튜브' 이런 이름보단 좀 더 명확한 이름이 나을 것 같다.
그러면 이제 여기 앱 비밀번호 16글자가 나온다. 이제 이걸 기존 비밀번호 대용으로 쓰면 된다.
이게 끝이다.
생각보다 엄청 간단한데, 구글의 안내 페이지에서 그냥 옵션을 막기만 하고 이걸 제대로 설명해주지 않아서 당황스러웠다. ㅡㅡ;
'프로그래밍 > 오류 해결용 메모' 카테고리의 다른 글
pip upgrade 명령시 [WinError 5] 액세스가 거부되었습니다 뜰 때 (0) | 2022.04.13 |
---|---|
MariaDB 에서 access denied for user 'root' 문제 (0) | 2020.02.05 |
Pycharm에서 tensorflow-gpu 설치 후 ImportError:dll load failed: 지정된 모듈을 찾을 수 없습니다 문제 해결하기 (0) | 2019.07.27 |
Python opencv 라이브러리 설치 시 import cv2에서 에러가 발생할 때 (0) | 2019.07.24 |