[python] Django REST framework에서의 이메일 발송 처리 방법

Django REST framework은 웹 애플리케이션을 개발할 때 유용한 프레임워크입니다. 이 프레임워크를 사용하면 간단하게 이메일을 발송할 수도 있습니다. 이번 포스트에서는 Django REST framework에서 이메일을 발송하는 방법에 대해 알아보겠습니다.

1. 이메일 설정

먼저, Django의 기본 설정 파일인 settings.py에서 이메일 관련 설정을 확인해야 합니다. 아래와 같이 EMAIL_BACKEND, EMAIL_HOST, EMAIL_PORT, EMAIL_USE_TLS, EMAIL_HOST_USER, EMAIL_HOST_PASSWORD를 설정해줍니다.

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'your_email@gmail.com'
EMAIL_HOST_PASSWORD = 'your_email_password'

중요한 점은 이메일을 발행하는 데 사용할 Gmail 계정의 사용자 이름과 비밀번호를 입력해야 한다는 것입니다.

2. 이메일 발송 코드 작성

이제, Django REST framework의 views.pyserializers.py 파일에서 이메일 발송 코드를 작성할 수 있습니다. 아래는 간단한 예시입니다.

from django.core.mail import send_mail
from django.conf import settings
from rest_framework.views import APIView

class SendEmailAPIView(APIView):
    def post(self, request):
        subject = request.data.get('subject')
        message = request.data.get('message')
        recipient_list = [request.data.get('recipient_email')]
        sender = settings.EMAIL_HOST_USER

        send_mail(subject, message, sender, recipient_list)
        return Response({"message": "이메일이 발송되었습니다."})

이 예시는 POST 요청을 받아 이메일의 제목, 본문, 수신자 이메일을 추출하고, send_mail 함수를 사용하여 이메일을 발송합니다.

3. URL 라우팅

이제, urls.py 파일에서 API 뷰를 URL과 매핑해야 합니다.

from django.urls import path
from .views import SendEmailAPIView

urlpatterns = [
    path('send-email/', SendEmailAPIView.as_view(), name='send-email'),
]

위의 예시에서는 /send-email/ URL에 POST 요청을 보내면 이메일을 발송합니다.

마무리

Django REST framework을 사용하여 이메일을 발송하는 방법에 대해 알아보았습니다. 이를 통해 Django 애플리케이션에서 간단하게 이메일 발송 기능을 구현할 수 있습니다. 이를 바탕으로 웹 애플리케이션에 필요한 이메일 서비스를 추가할 수 있을 것입니다.

더 자세한 정보는 Django 공식 문서를 참조하시기 바랍니다.