2022. 2. 5. 13:33ㆍ강의 정리/Django 기초
장고(Django)를 배우기 시작한 입문자이시거나, 또는 배우고 싶은 생각이 있으신 분은 위 출처의 강의를 적극 추천드립니다!!!
회원가입 이메일 보내기
# 많은 양의 이메일을 동시에 보내야한다면 비동기 방법인 Celery 추천
https://devlog.jwgo.kr/2019/07/02/using-celery-with-django-1/
SendGrid를 이용하여 이메일 보내기
1. SendGrid에 들어가 회원가입을 하자https://sendgrid.com/
2. settings > API Keys 로 접속하여서 API Key를 생성한다.
https://app.sendgrid.com/settings/api_keys
3. API Key 생성 후 뜨는 Create a sender identity 문구 클릭 후 Sender Email 생성
https://app.sendgrid.com/settings/sender_auth/senders/new
4. 센더 이메일 인증 과정 필요함
Django 프로젝트에 적용하기
1. settings(=common)에 SendGrid 설정 추가
# 실제 예외 발생시 해당 어드민에게 이메일을 발송케 함
ADMINS = [
('Dongbaek', 'yardyard@naver.com'),
]
# Email with Send Grid
SENDGRID_API_KEY = os.environ.get('SENDGRID_API_KEY')
EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = 'apikey'# this is exactly the value 'apikey'
EMAIL_HOST_PASSWORD = SENDGRID_API_KEY
EMAIL_PORT = 587
EMAIL_USE_TLS =True
# 고정 Sender Email 추가
WELCOME_EMAIL_SENDER = "yardyard@naver.com"
https://docs.sendgrid.com/for-developers/sending-email/django
#Views.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)
2. User 모델 메소드에 이메일 전송 코드 작성
class User(AbstractUser):
website_url = models.URLField(blank=True)
bio = models.TextField(blank=True)
def send_welcome_email(self):
Subject = render_to_string("accounts/welcome_email_subjects.txt", {
"user": self,
})
content = render_to_string("accounts/welcome_email_contents.txt", {
"user": self,
})
sender_email = settings.WELCOME_EMAIL_SENDER
send_mail( Subject, content , sender_email , [self.email], fail_silently=False)
3. 이메일 템플릿 작성
User.send_welcome_email 에서 render_to_string 에 삽입하기 위한 템플릿을 작성하기
txt로 따로 작성하면, 굳이 하드 코딩을 안해도된다!
#accounts/templates/accounts/welcome_email_subjects.txt
Instagram 가입을 환영합니다!
#accounts/templates/accounts/welcome_email_contents.txt
Instagram 가입을 환영합니다!
{{ user.first_name }} {{ user.last_name }}님 가입을 환영합니다~!!!
- Dongbaek 드림
#쉘에서 실행
$ python manage.py shell
>>> from django.contrib.auth import get_user_model
>>> User = get_user_model()
>>> user = User.objects.first()
>>> user.send_welcome_email()
# 만약 1이 출력되면 성공
Django SendGrid API Key 획득하고, 환경 변수에 저장
#프로젝트/env.sh 파일을 만들고 API를 환경 변수에 저장하기
export SENDGRID_API_KEY=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
도움 받은 문서
'강의 정리 > Django 기초' 카테고리의 다른 글
Django 프로필 디폴트 이미지 구현하기 (0) | 2022.02.07 |
---|---|
Django 로그인, 로그아웃 구현하기 (0) | 2022.02.07 |
Django User 모델 커스텀 및 회원가입 구현 (0) | 2022.02.04 |
관계를 표현하는 모델 필드 #ManyToManyField (0) | 2022.01.03 |
Django App이란 무엇일까??? (0) | 2021.12.24 |