파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 강의를 듣고 정리한 글입니다.
settings > API Keys
로 접속해서 API Key를 생성한다. (https://app.sendgrid.com/settings/api_keys)# Email with Send Grid
# https://docs.sendgrid.com/for-developers/sending-email/django
SENDGRID_API_KEY = os.getenv('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
WELCOME_EMAIL_SENDER = '' # Sender Email 추가!
accounts/models.py
# accounts/models.py
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_subject.txt')
content = render_to_string('accounts/welcome_email_content.txt', {
"user": self,
})
sender_email = settings.WELCOME_EMAIL_SENDER
return send_mail(subject, content, sender_email, [self.email], fail_silently=False)
User.send_welcome_email
에서 render_to_string
에 삽입하기 위한 템플릿을 작성. (이메일 제목 및 내용)
txt 확장자임에도 템플릿 문법도 사용할 수 있어서 좋다.
accounts/templates/accounts/welcome_email_content.txt
Instagram 가입을 환영합니다.
{{ user.first_name }} {{ user.last_name }}님 가입을 환영합니다.
- Instagram 운영자 드림
accounts/templates/accounts/welcome_email_title.txt
Instagram 가입을 환영합니다.
$ 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: 성공