jc.jang

10강 가입환영 이메일 보내기 본문

Django/Django - 인증편

10강 가입환영 이메일 보내기

jangstory 2019. 9. 3. 10:50

주제

  • 가입환영 이메일 보내기

노트

  • 이메일 보내기는 예전에 django.core.mail을 통해 구현해본 적이 있음
  • 이 방법 말고 다른 방법들에 대해 알아보자

 

  • 장고 이메일 라이브러리
  • 공식문서를 참고하여 이메일을 전송할 수 있다.
  • accounts/models.py
from django.core.mail import send_mail

send_mail(
    'Subject here',
    'Here is the message.',
    'from@example.com',
    ['to@example.com'],
    fail_silently=False,
)
  • 전송하려면 settings.py에서 몇가지 설정을 추가하면 된다.
  • host, prot, username 등등 자세한건 공식문서 참고하여 작성
  • settings.py는 django/conf/global_settings.py를 오버라이드한다.
  • 꿀팁: 실제로 메일 보내는것을 구현하려면 보안 수준이 낮은 앱이 계정에 액세스하도록 허용을 하고
  • 이메일 설정등 번거로운게 많다.
  • 테스트 목적이라면 [project]/settings.py
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
  • 위 와 같이 설정하면 이메일 내용이 콘솔에 출력된다. 여기 출력된 url로 테스트를 하면된다.

 

  • 장고 써드파티 이메일 라이브러리(aws-ses) 사용하기
  • 장고 이메일 라이브러리는 대량의 이메일 전송 시 매우 느리다.
  • Amazon Simple Email Service를 이용해 빠른 속도로 전송할 수 있다.
  • EC2에 호스팅된 애플리케이션에서 이메일을 발송할 경우 매월 62000건까지는 무료로 사용 가능하다.
  • boto3를 사용하여 직접 구현하거나 django-ses를 이용해 바로 사용 가능하다.
  • [project]/settings.py
EMAIL_BACKEND = 'django_ses.SESBackend'

# These are optional -- if they're set as environment variables they won't
# need to be set here as well
AWS_ACCESS_KEY_ID = 'YOUR-ACCESS-KEY-ID'
AWS_SECRET_ACCESS_KEY = 'YOUR-SECRET-ACCESS-KEY'

# Additionally, if you are not using the default AWS region of us-east-1,
# you need to specify a region, like so:
AWS_SES_REGION_NAME = 'us-west-2'
AWS_SES_REGION_ENDPOINT = 'email.us-west-2.amazonaws.com'
  • 몇가지 aws 설정 셋팅이 필요하다.

 

질문

  • celery를 이용한 이메일 전송 링크 읽어보고 따라하기

요약

  • 장고 이메일 라이브러리
  • 장고 써드파티 이메일 라이브러리
  • 파이썬 써드파티 이메일 라이브러리
  • 위 세가지를 이용해 가입환영 이메일을 전송할 수 있다.

날짜

  • 오전 10시, 20190903

 

Comments