подтверждение электронной почты django rest-auth с почтовым штемпелем

Я довольно много видел о том, как переопределить шаблоны электронной почты, но, похоже, они в основном включают создание шаблонов HTML и переопределение местоположения файла.

Я использую шаблон почтового штемпеля, который включает отправку почтового запроса с переменными электронной почты. Я обрабатываю это с помощью anymail, как показано ниже с формой, которая отправляет на мой адрес службы поддержки по электронной почте:

class PartnerContact(APIView):
    """Sends email to Partners@***.com"""

    @authentication_classes([])
    @permission_classes([])
    def post(self, request):
        """Sends Form Data"""

        print("PartnerContact data", request.data)

        status_code = status.HTTP_400_BAD_REQUEST

        msg = EmailMessage(
            from_email='Partners@***.com',
            to=['Partners@***.com'],
            reply_to=[request.data['email']]
        )

        msg.template_id = ***

        logo = attach_inline_image_file(msg, finders.find("***.png"))

        msg.merge_global_data = { **{**request.data, **{"logo":logo} } }

        # <img alt="Logo" src="cid:{logo_cid}">
        msg.send()
        status_code = status.HTTP_200_OK

        return Response(status=status_code)

Моя цель - использовать шаблоны почтовых штемпелей для писем с подтверждением учетной записи и сбросом пароля, но мне трудно понять, как переопределить методы отправки.

1 ответ

Решение

rest_auth предоставляет только остальной интерфейс фреймворка для allauth.

Вы хотите переопределить электронные письма allauth, а не rest_auth.

документ allauth при отправке электронной почты allauth.account.adapter.DefaultAccountAdapter.send_email()

Вы можете сделать это, установив ACCOUNT_ADAPTERв вашей конфигурации settings.py и создав подклассDefaultAccountAdapter

from allauth.account.adapter import DefaultAccountAdapter

CustomAccountAdapter(DefaultAccountAdapter):
    def send_mail(self, template_prefix, email, context):
        # handle send mail the way you want to
        pass 
Другие вопросы по тегам