Byeonguk Kim

안녕하세요. 29살의 조금은 늦은 나이로 새롭게 개발자로 시작하는 신입 개발자입니다. 포트폴리오 [https://deaguowl.github.io]

배포 05. 자동 이메일 발송설정하기

31 May 2019 » 배포

2019.05.31 자동 이메일 발송 설정하기

이메일 서버 셋팅하기

  • rmtp 프로그램 서버 설치
  • 스팸함에 넣지 않도록 협조를 요청해야 한다.
  • white_list와는 다르다.
  • 외부에서 접속할 수 있도록 허용해주는 imap을 설정
  • 보안수준이 낮은 앱에서도 접속할 수 있도록 해줘야 한다.
  • 기본적으로 셋팅은 쉬운데, 스팸함이나 그런 곳에 들어가는 경우가 너무 많다.

gmail 로그인

8D49CB1C-CF9C-4331-9C80-DDF1B5120BCE

전달 및 POP / IMAP 접속 (외부에서 접속가능하도록 설정)

C615E20B-5A57-4061-AA54-108C0A8F1D63

  • IMAP 사용으로 클릭
  • 변경사항 저장 클릭

인증 관리(보안수준이 낮은 앱에서도 접속할 수 있도록 인증)

92EA4C54-25C2-4852-AD89-387A9EFA028F

  • 구글 계정 클릭

3FA53363-5844-4EBE-A039-05B2DC1CF813

  • 보안 수준이 낮은 앱의 액세서 사용 허용
  • 여기까지 하면 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)