500에러 이메일 수신

✉️ 이메일 수신 설정

1. settings.py

# settings.py

# DEBUG False에서만 이메일이 전송된다.
DEBUG = False

# 메일 호스트 서버
EMAIL_HOST = "smtp.gmail.com"
# gmail 통신 포트
EMAIL_PORT = "587"
# 발신 이메일
EMAIL_HOST_USER = config("EMAIL_HOST_USER")
# 발신 이메일 비밀번호
EMAIL_HOST_PASSWORD = config("EMAIL_PASSWORD")
# TLS 보안 방법
EMAIL_USE_TLS = True
# 자동응답 받을 이메일 주소
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

"""
에러 메시지 수신
- DEBUG=False일 때만 적용
"""
ADMINS = [(별칭A, "A의 이메일 주소"), (별칭B, "B의 이메일 주소"),]

위의 셋팅만 하면 이메일이 전송될 줄 알았다.
일단 테스트해보자.

# 장고 shell_plus
from django.core.mail import EmailMessage
>>> email = EmailMessage(
...     "test",
...     "contents",
...     to=[본일 이메일@gmail.com'],
... )

>>> email.send()

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/opt/anaconda3/envs/plab/lib/python3.9/site-packages/django/core/mail/message.py", line 291, in send
    return self.get_connection(fail_silently).send_messages([self])

하지만, 위와 같이 에러를 만나게 된다.

raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (534, b'5.7.9 Application-specific password required. Learn more at\n5.7.9 https://support.google.com/mail/?p=InvalidSecondFactor q2sm9808943pfu.205 - gsmtp')

구글 설정 변경이 필요하다.


2. 구글 설정

(참고로 위 화면처럼 보안 수준이 낮은 앱의 액세스 섹션이 보이지 않는다면

지금 로그인한 계정에 2단계 인증이 적용됐기 때문이다.)



✉️ 결과



좋은 웹페이지 즐겨찾기