밤하늘공작소
Django에서 이메일 보내기 본문
여러분이 어떤 메일 사이트에 들어가서 이메일을 작성하고 전송을 하면, 그 사이트의 이메일 서버(1)를 통해서 전송되는 대상의 사이트 이메일 서버(2)에 전송해 그 사용자에게 전달이 됩니다. 여기서 이메일을 전송하는 1번 이메일 서버를 SMTP(Simple Mail Transfer Protocol) 서버라고 합니다. Django에서 SMTP 서버에 요청을 보내서 이메일을 보낼 수 있습니다.
사람들이 가장 많이 사용하는 구글의 G-mail로 이메일을 보겠습니다. 우선 이메일을 보낼 구글 계정(G-mail 계정)을 준비하시고, 이것을 따라해주시면 됩니다.
1. 구글 계정의 2단계 인증 사용
구글의 G-mail을 Django에서 사용하려면 2단계 인증을 해야합니다. 만약 이것이 불편하시면, 부계정을 만들어서 테스트하셔도 됩니다.
우선 구글 계정에 로그인한 상태에서 http://myaccount.google.com/security 에 들어갑니다. (부계정이라면 이 화면에서 오른쪽 위에 있는 이미지로 계정 전환) 그 후 밑으로 내려가 2단계 인증을 클릭합니다. 이제 비밀번호 밑 전화번호 인증으로 2단계 인증을 활성화시킵니다.
2. 구글 앱 비밀 번호 설정
2단계 인증을 활성화했다면 그 밑에 앱 비밀번호가 보일 것입니다. 그것을 눌른 후 비밀번호를 입력해줍니다. 그러면 앱 비밀번호 창이 나옵니다. 그곳에서 앱 선택을 기타로 설정해줍니다. 그러면 앱의 이름을 설정하라고 나오는데 그곳에 원하는 이름을 적어주시면 됩니다. (크게 상관이 있지는 않습니다.) 그러면 밑의 사진 같은 창이 나옵니다. 이곳의 비밀번호는 한 번 밖에 보여주지 않습니다. (그렇기 때문에 메모장 같은 곳에 저장해놓는 것을 추천드립니다.)
3. Django 설정
이메일을 보낼 구글 계정의 앱 비밀번호를 만들었다면, 이제 Django의 settings.py에 들어간 후 밑에 이러한 코드를 추가해주면 됩니다.
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = "smtp.gmail.com"
EMAIL_PORT = 587
EMAIL_HOST_USER = '이메일을 보낼 G-mail 계정'
EMAIL_HOST_PASSWORD = '설정한 앱 비밀번호'
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
이 설정을 하고 나면 이제 Django에서 이메일을 보낼 수 있습니다.
4. 이메일 보내기
이메일을 보내는 형식은 몇 가지의 방법이 있지만, 저는 이러한 방법을 사용합니다.
from django.core.mail import EmailMessage
email = EmailMessage(
'Title', #이메일 제목
'Content', #내용
to=['example@example.com'], #받는 이메일
)
email.send()
이메일 활용: to는 리스트로 정의 되기 때문에 한 번에 여러 명에게 이메일을 보낼 수 있습니다. email.send()는 성공하면 1을 실패하면 0을 리턴하기 때문에 email.send()를 변수 안에 넣어서 그 변수를 이용해 성공했는지를 확인하는 방법이 있다.
'코딩 > Django' 카테고리의 다른 글
[Django 웹페이지] Template Rendering (2) (0) | 2022.06.01 |
---|---|
[Django 웹페이지] views.py·urls.py (1) (0) | 2022.05.12 |
[Django 프로젝트] 앱 생성 (2) (0) | 2022.05.09 |
[Django 프로젝트] 프로젝트 생성 (1) (0) | 2022.05.05 |
[Django 초기 설정] 가상 환경 생성·적용 및 django 설치 (3) (0) | 2022.04.24 |