반응형
Error Occur
Django SMTP 모듈을 이용해
메일을 전송하는 코드를 짜는 과정에서
다음 에러가 발생한다.
SMTPServerDisconnected at /
please run connect() first
에러가 나는 이유를 추측해보면,
EmailMessage를 인스턴스 하고
e.send() 하는 과정에서,
send를 하고 quit() 내부 함수가
작동해서, 추가적으로 get_connection()이
안되는 것이 의심된다.
==========================
solution1
Email Backend에서 자동으로 호출되는
with as 함수 형태로 메세지를 바꿔본다.
from django.core import mail
with mail.get_connection() as connection:
mail.EmailMessage(
subject1, body1, from1, [to1],
connection=connection,
).send()
mail.EmailMessage(
subject2, body2, from2, [to2],
connection=connection,
).send()
작동안됨
solution2 BACKEND 설정 확인
BACKEND에는 다음 항목이 기재된다.
항목이 정확히 입력되었는지 확인한다.
호스트 이름을 가져오지 못하거나,
호스트 유저를 찾지 못하면,
SMTP 서버에 접속이 불가능하다.
solution3 e-mail account 확인
메일을 보낼 경우
EMAIL BACKEND configuration을 확인해야 한다.
SMTP 서버를 구글 서버로 사용한다면,
보안탭을 확인한다.
구글의 경우 Default값이
'보안수준이 낮은 앱의 액세스'가 사용안함으로
체크되어 있다.
디폴트 값으로는 SMTP 서버에 접속이 불가능한
것이다. 해당 항목이 사용으로 체크되어 있는지
확인한다.
결과는 성공이다.
추측으로는
run connect() first 에러가 발생하는 이유는
BACKEND 부분의 설정에 문제가 있는
경우가 많다. 호스트와 호스트유저, 그리고
패스워드를 정확하게 입력했는지,
혹시 os.environ('')형식으로 입력하는 경우
import os 와 default setting이 정확하게
config()되어 있는지 확인이 필요하다.
반응형
'Programming' 카테고리의 다른 글
TemplateSyntaxError at Could not parse the remainder: ': 'Y-m-d'' from 'posts.date|date: 'Y-m-d'' (0) | 2021.10.05 |
---|---|
SSL TLS HTTP 란 무엇인가 what is ssl tls http (0) | 2021.10.04 |
[project #1] 1) django 웹페이지 기본 로그인 기능 구현 (0) | 2021.10.03 |
django os.environ 설정 문제 (0) | 2021.10.02 |
django.db.utils.ProgrammingError: 오류: "auth_user" 이름의 릴레이션(relation)이 없습니다LINE 1: SELECT (1) AS "a" FROM "auth_user" WHERE "auth_user"."userna... (0) | 2021.10.01 |
Django project setting 순서 및 방법 (0) | 2021.10.01 |
댓글