해당 글은 아래의 사이트를 보며 학습하였으며 추가적인 보안 및 자세한 설명을 추가하였습니다.
settings.py 설정해 주기
# Email 전송
# 메일을 호스트하는 서버
EMAIL_HOST = 'smtp.gmail.com'
# gmail과의 통신하는 포트
EMAIL_PORT = '587'
# 발신할 이메일
# EMAIL_HOST_USER = '구글아이디@gmail.com'
EMAIL_HOST_USER = get_secret("EMAIL_HOST_USER")
# 발신할 메일의 비밀번호
# EMAIL_HOST_PASSWORD = '구글비밀번호'
EMAIL_HOST_PASSWORD = get_secret("EMAIL_HOST_PASSWORD")
# TLS 보안 방법
EMAIL_USE_TLS = True
# 사이트와 관련한 자동응답을 받을 이메일 주소
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
먼저 settings.py에 Email 전송을 학 위한 설정을 해줍니다.
github에 올리면 안 되는 정보인 EMAIL_HOST_USER와 EMAIL_HOST_PASSWORD는 secrets.json에서 받아 줍니다.
참고 : https://integer-ji.tistory.com/180
user/views.py
from django.core.mail.message import EmailMessage
def send_email(request):
subject = "message"
to = ["id@gmail.com"]
from_email = "id@gmail.com"
message = "메지시 테스트"
EmailMessage(subject=subject, body=message, to=to, from_email=from_email).send()
일단 메시지가 잘 전송이 되는지 테스트를 해야 합니다.
메시지 전송 함수를 만들어 줍니다.
gmail 계정 설정
https://accounts.google.com/DisplayUnlockCaptcha
해당 사이트에서
내 google 계정에 대한 액세스를 허용해 줍니다.
다음으로는 구글 계정 설정에서 "보안 수준이 낮은 앱의 액세스"를 허용해줍니다.
gmail 설정
IMAP를 사용 체크해줍니다.
send_email 함수 실행
path('send_email/', views.send_email, name='send_email'),
user/urls.py에 함수를 실행하는 url을 설정해 줍니다.
서버를 실행시켜 해당 함수를 호출하면
해당 오류가 나오지만 괜찮습니다.
이미 저희가 원하는 함수는 실행이 되었으니까요
잘 작동되네요
실제 사용하고 있는 구글 계정이라면 허용한 액세스를 꼭 다시 차단해주시고
저는 새로운 계정을 만들어서 새로운 계정으로 테스트를 진행하였습니다.
'코딩공부 > Python Django' 카테고리의 다른 글
django password reset (2) - class PasswordReset Overriding (0) | 2020.08.22 |
---|---|
django password reset (1) - class PasswordReset 사용하기 (1) | 2020.08.21 |
django ngrok를 이용한 개발서버 모바일로 접속하기 (0) | 2020.08.16 |
django secrets.json views.py에 불러오기 (0) | 2020.08.13 |
kakao 지도 api를 활용한 for문 돌리기.. (0) | 2020.08.04 |