I have created contact form with react and connected it with mysql database hosted using RDS. i used django for building the database. before some days i was able to get email when i am submitting the form and the data was also been stored in the database but now when i am submitting the form i am not getting an email notification of submission but i can see the data in my database. i also tried to send test email from the console and it worked. when i changed the API from urls.py and then i submitted the form, i got the mail but when i did the submission again i did not get any mail. this is my setting.py code DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': config('DB_NAME', default='myportfolio'), 'USER': config('DB_USER', default='root'), 'PASSWORD': config('DB_PASSWORD', default=''), 'HOST': config('DB_HOST', default=''), 'PORT': config('DB_PORT', default='3306'), } } # Email backend configuration EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.gmail.com' EMAIL_PORT = 587 EMAIL_USE_TLS = True EMAIL_HOST_USER = config('EMAIL_HOST_USER') EMAIL_HOST_PASSWORD = config('EMAIL_HOST_PASSWORD') views.py from django.core.mail import send_mail from django.conf import settings from django.http import JsonResponse from django.views.decorators.csrf import csrf_exempt from rest_framework.parsers import JSONParser from .models import Form from .serializers import FormSerializer import json @csrf_exempt def formApi(request, id=0): if request.method == 'GET': try: if id: form = Form.objects.get(id=id) form_serializer = FormSerializer(form) return JsonResponse(form_serializer.data, safe=False) else: forms = Form.objects.all() forms_serializer = FormSerializer(forms, many=True) return JsonResponse(forms_serializer.data, safe=False) except Form.DoesNotExist: return JsonResponse({'error': 'Form not found'}, status=404) elif request.method == 'POST': form_data = JSONParser().parse(request) form_serializer = FormSerializer(data=form_data) if form_serializer.is_valid(): form_serializer.save() return JsonResponse({'message': 'Added Successfully'}, status=201) return JsonResponse(form_serializer.errors, status=400) elif request.method == 'PUT': form_data = JSONParser().parse(request) try: form = Form.objects.get(id=id) form_serializer = FormSerializer(form, data=form_data) if form_serializer.is_valid(): form_serializer.save() return JsonResponse({'message': 'Updated Successfully'}, status=200) return JsonResponse(form_serializer.errors, status=400) except Form.DoesNotExist: return JsonResponse({'error': 'Form not found'}, status=404) elif request.method == 'DELETE': try: form = Form.objects.get(id=id) form.delete() return JsonResponse({'message': 'Deleted Successfully'}, status=204) except Form.DoesNotExist: return JsonResponse({'error': 'Form not found'}, status=404) @csrf_exempt def form_submission_view(request): if request.method == 'POST': try: data = json.loads(request.body) name = data.get('name') email = data.get('email') subject = data.get('subject') message = data.get('message') # Debug prints # Validate form data if not name: return JsonResponse({'error': 'Name is required'}, status=400) if not email: return JsonResponse({'error': 'Email is required'}, status=400) if not subject: return JsonResponse({'error': 'Subject is required'}, status=400) if not message: return JsonResponse({'error': 'Message is required'}, status=400) # Save to database Form.objects.create(name=name, email=email, subject=subject, message=message) # Send email send_mail( 'New Form Submission', f'You have a new form submission:\n\nName: {name}\nEmail: {email}\nSubject: {subject}\nMessage: {message}', settings.EMAIL_HOST_USER, [settings.EMAIL_HOST_USER], fail_silently=False, ) return JsonResponse({'message': 'Form submitted successfully!'}) except Exception as e: print(f"Error: {e}") return JsonResponse({'error': 'Invalid data'}, status=400) else: return JsonResponse({'error': 'Invalid request method'}, status=405) Continue reading...