오늘은 Django 프레임워크에서 이메일을 보내는 방법에 대해 알아보겠습니다!
구글 이메일을 통해 이메일을 보낼 예정이고, 받는 이메일은 다양한 플랫폼으로 가능합니다!
시작할게요 :)
▶ 발신할 이메일 설정(구글)
GMAIL_ID & GMAIL_PASSWORD 는 my_settings.py 에 입력한 내 아이디 비밀번호와 연결!
★ 중요! 개인정보 정보가 공유되지 않도록 my_settings.py 는 .ignore 파일에 추가하도록 한다!
[settings.py]
# 발신할 이메일
EMAIL_HOST_USER = GMAIL_ID
# 메일을 호스트하는 서버
EMAIL_HOST = "smtp.gmail.com"
# gmail과 통신하는 포트
EMAIL_PORT = 587
# TLS 보안 방법
EMAIL_USE_TLS = True
# 발신할 이메일의 비밀번호
EMAIL_HOST_PASSWORD = GMAIL_PASSWORD
# 사이트와 관련한 자동응답을 받을 이메일 주소
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
▶ 구글 이메일 계정의 권한 설정하기
설정한 gmail을 발신자로 메일을 보낼 때, 접근할 수 있도록 보안 설정 단계를 아래와 같이 낮춰주어야 한다!
구글 계정 → 보안 → 보안수준이 낮은 앱의 엑세스 "사용" 설정
▶ 이메일 보내기
[views.py]
class SendEmailView(View):
def post(self, request):
try:
data = json.loads(request.body)
email = data["email"]
send_mail(
"test mail", # 제목
"테스트 메일 입니다.", # 내용
"", # 보내는사람 메일/setting의 기본값으로 설정됨.
[email], # 받는 사람 메일
fail_silently=False,
)
return JsonResponse({"message": "SUCCESS"}, status=200)
except KeyError:
return JsonResponse({"message": "KEY_ERROR"}, status=400)
▣ 참고자료
https://docs.djangoproject.com/en/3.2/topics/email/
'Django' 카테고리의 다른 글
[Django] 댓글, 대댓글, 페이지네이션 구현하기 (0) | 2021.11.06 |
---|---|
[Django] 유닛테스트 (0) | 2021.09.16 |