2019.05.31 자동 이메일 발송 설정하기
이메일 서버 셋팅하기
- rmtp 프로그램 서버 설치
- 스팸함에 넣지 않도록 협조를 요청해야 한다.
- white_list와는 다르다.
- 외부에서 접속할 수 있도록 허용해주는 imap을 설정
- 보안수준이 낮은 앱에서도 접속할 수 있도록 해줘야 한다.
- 기본적으로 셋팅은 쉬운데, 스팸함이나 그런 곳에 들어가는 경우가 너무 많다.
gmail 로그인
전달 및 POP / IMAP 접속 (외부에서 접속가능하도록 설정)
- IMAP 사용으로 클릭
- 변경사항 저장 클릭
인증 관리(보안수준이 낮은 앱에서도 접속할 수 있도록 인증)
- 구글 계정 클릭
- 보안 수준이 낮은 앱의 액세서 사용 허용
- 여기까지 하면 gmail 관련 설정 끝
setting.py에서 추가 작성
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'deaguowl@gmail.com'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
실제로 보내기
from django.core.mail import EmailMessage
email = EmailMessage('제목','본문', to=['받는 사람'])
email.send()
- 회원가입 창에 메일 보내기가 들어가 있으면 이 로직을 실행하는데 시간을 사용하게 되므로 고객들에게 느리게 보여지는 문제가 발생하게 된다.
- 별도로 메세지 큐를 두어서 일임을 한다.
- Celery
- 해야 될 일을 만들어서 rabbitMQ로 보낸다.
- rabbitMQ
- 파이썬에서 사용할 수 있는 이메일 서버
- Celery를 이용한 분산처리 프로세스 작성하기 – Sunhyoup’s Story – Medium
[{ DoKy’s Blog } Python Celery & RabbitMQ Tutorial](https://kimdoky.github.io/tech/2019/01/23/celery-rabbitmq-tuto.html)