본격적인 이메일 인증을 하기 전에 이메일 보내기부터 해보도록 하겠따.
우선 희생양 발신용으로 쓰일 지메일에 2가지 설정을 해줘야한다.
지메일 > 모든 설정 보기 > 전달 및 POP/IMAP
에서 IAMP 사용
선택
원래 보안 수준이 낮은 앱을 액세스할 수 있도록 설정을 변경해야 하는데, 2022년 5월 30일부터 개인계정에서는 이를 사용 중지한다고 한다. 그래서 이제 그 대신 앱 비밀번호를 발급받아야 한다. 절차는 간단하다.
구글 계정 관리에서 보안탭을 들어가 2단계 인증을 사용으로 해주고, 앱 비밀번호를 만든다.
이렇게 app은 메일, device는 other로 설정 후 앱 이름을 입력하면 16자리 앱 비밀번호가 나온다. 이 비밀번호를 내가 로그인할때 쓰는 비밀번호 대신 쓰면 된다.
settings.py에 메일 관련 코드를 넣는다.
# settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com' # 메일 호스트 서버
EMAIL_PORT = '587' # gmail과 통신하는 포트
EMAIL_HOST_USER = os.environ.get("EMAIL_HOST_USER") # 발신할 이메일
EMAIL_HOST_PASSWORD = os.environ.get("EMAIL_HOST_PASSWORD") # 발신할 메일의 비밀번호
EMAIL_USE_TLS = True # TLS 보안 방법
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER # 사이트와 관련한 자동응답을 받을 이메일 주소
$ python manage.py shell
❗
python
으로 여는 거 아니다..
>>> from django.core.mail import EmailMessage
>>> email = EmailMessage('제목', '본문', to=['수신자이메일'])
>>> email.send()
성공적으로 발송되면 1이 찍힌다.
Django 에서 메일전송하기(DRF 예시 코드)
파이썬 SMTP Gmail app password 설정하기