Я пытаюсь отправить электронное письмо через Django Rest Framework приложение. Письмо должно быть отправлено пользователю, который зарегистрируется в нашей системе с помощью Gmail.
Я также использую docker images python:3.7-slim
и MySql:5.6
Сначала я создал почтовые конфигурации в файле Django project setting.py
, как указано ниже.
# Email Settings.
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 456
EMAIL_HOST_USER = 'steinnlabs@gmail.com'
EMAIL_HOST_PASSWORD = '*****'
EMAIL_USE_TLS = 1
EMAIL_USE_SSL = 0
Вот так выглядит view.py
файл приложения.
from __future__ import unicode_literals
from django.shortcuts import render
from . import views
from rest_framework.views import APIView
from django.db import IntegrityError
from rest_framework import status
from . import models, serializers
from rest_framework.response import Response
from django.core.mail import send_mail
class UserAPIViews(APIView):
"""
"""
def post(self, request, format=None):
"""
"""
print(request.data)
serialized_data = serializers.UserSerializer(data=request.data)
if serialized_data.is_valid():
try:
user_id = serialized_data.save()
except IntegrityError as error:
message = f"Email already exist."
return Response ({
'error_message' : message,
'status' : status.HTTP_226_IM_USED
})
subject = 'Eitan - Case Manager Account Credentials'
body = f"Hi {serialized_data.validated_data.get('first_name')} Your case manager account is ready. Please use following credentials to login. Email - {serialized_data.validated_data.get('email')}, Password - {serialized_data.validated_data.get('password')} Thank You! Team Eitan."
sender = "steinnlabs@gmail.com"
to = serialized_data.validated_data.get('email')
send_mail(subject, body, sender, [to], fail_silently=False)
success_message = f"User has been created."
return Response({
'success_message' : success_message,
'status' : status.HTTP_201_CREATED
})
else:
return Response (serialized_data.error_messages)
Я не понимаю, что не так с моей конфигурацией. Всякий раз, когда я вызываю этот API, создается пользователь, но send_mail()
функции завершаются с ошибкой.
OSError at /user/create/
[Errno 99] Cannot assign requested address