[Django] 이메일 보내기

김재연·2022년 7월 22일
2

Watti

목록 보기
7/10
post-thumbnail

본격적인 이메일 인증을 하기 전에 이메일 보내기부터 해보도록 하겠따.

지메일 세팅

우선 희생양 발신용으로 쓰일 지메일에 2가지 설정을 해줘야한다.

1. IMAP 설정 허용

지메일 > 모든 설정 보기 > 전달 및 POP/IMAP 에서 IAMP 사용 선택

2. 앱 비밀번호 발급

원래 보안 수준이 낮은 앱을 액세스할 수 있도록 설정을 변경해야 하는데, 2022년 5월 30일부터 개인계정에서는 이를 사용 중지한다고 한다. 그래서 이제 그 대신 앱 비밀번호를 발급받아야 한다. 절차는 간단하다.

구글 계정 관리에서 보안탭을 들어가 2단계 인증을 사용으로 해주고, 앱 비밀번호를 만든다.

이렇게 app은 메일, device는 other로 설정 후 앱 이름을 입력하면 16자리 앱 비밀번호가 나온다. 이 비밀번호를 내가 로그인할때 쓰는 비밀번호 대신 쓰면 된다.


settings.py

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이 찍힌다.


Reference

Django 에서 메일전송하기(DRF 예시 코드)
파이썬 SMTP Gmail app password 설정하기

profile
일기장같은 공부기록📝

0개의 댓글