이메일로 회원가입을 하거나 할 때, 해당 메일이 실제로 쓰이고 있고 해당 유저가 사용하고 있는지를 인증하기 위해서 인증 메일을 보내곤 한다. 이를 SendGrid나 AWS SES 등의 서비스를 통해서 할 수도 있지만, G-mail을 통해서 작은 규모의 웹사이트에서도 사용할 수 있다.
먼저, SMTP를 사용하기 위해서 지메일에서는 두 가지를 설정해줘야 한다.
1. IMAP 사용함 설정 https://support.google.com/mail/answer/7126229?hl=ko&rd=3&visit_id=1-636281811566888160-3239280507#ts=1665018
2. 보안 수준이 낮은 앱 허용 https://support.google.com/accounts/answer/6010255
두 가지 설정이 마치게 되면 SMTP를 이용할 수 있게 된다. 다만 해당 계정의 비밀번호가 유출되지 않도록 잘 관리하자. Django에서는 SMTP 설정이 몇 줄만으로 끝이난다.
settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = "smtp.gmail.com" EMAIL_HOST_USER = 'username@gmail.com' EMAIL_HOST_PASSWORD = 'your-gmail-password' EMAIL_PORT = 587 EMAIL_USE_TLS = True DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
(587 port는 지메일 권장사항이기 때문에 587을 쓰는 것이고, 해당 포트를 열어놓도록 한다.)
이렇게 설정을 해 놓은 상태가 되면 python shell에서 테스트를 해볼 수 있다.
>>> from django.core.mail import EmailMessage
>>> email = EmailMessage('subject text', 'body text', to=['somebody@example.com'])
>>> email.send()
1
1이 나오면 잘 전송이 된 것이다. 해당 메일이 왔는지 somebody@example.com에서 확인해보자.
'Programming > Django' 카테고리의 다른 글
[Django] Django+uWSGI에서 os.environ variable 설정하기 (0) | 2017.04.18 |
---|---|
[Django] 국제화, 현지화. 각국의 언어로 번역되는 웹사이트를 만들려면? (0) | 2017.03.13 |
[Django] Form에서 비밀번호 확인하기 (0) | 2017.03.10 |
[Django] 오픈 소스 기반 웹 소스 코드 'Django Girls Website' 분석기 - 1 (0) | 2017.02.18 |