• 1401/10/27

عدم ارسال ایمیل به وسیله Gmail :

باسلام  وقت بخیر من کد ها رو  طبق جلسات انجام دادم ولی ایمیل فعالسازی حساب کاربری و... ارسال نمیگردد.همینطور پروژه رو دیباگ کردم تمام خط کد ها اجرا میشدند اما ایمیل ارسال نمیشد.

ماژول ارسال ایمیل

from django.core.mail import send_mail
from  django.template.loader import render_to_string
from django.utils.html import strip_tags
from django.conf import settings

def send_email(subject,to,context,template_name):
    try:
        html_message=render_to_string(template_name,context)
        plain_text=strip_tags(html_message)
        from_email=settings.EMAIL_HOST_USER
        send_mail(subject,plain_text,from_email,[to],html_message=html_message)
    except:
        pass



کد های قسمت View:

from django.shortcuts import render, redirect, reverse
from django.http import Http404
from django.views.generic.base import View
from .forms import register_forms, login_forms,forget_password_forms,reset_password_forms
from .models import user
from django.utils.crypto import get_random_string
from django.contrib.auth import login,logout
from utils.email_service import send_email


# Create your views here.

class register_view(View):
    def get(self, request):
        register_form = register_forms()
        context = {
            'register_form': register_form
        }
        return render(request, 'user_module/register.html', context)

    def post(self, request):
        register_form = register_forms(request.POST)

        if register_form.is_valid():
            user_email = register_form.cleaned_data.get('email')
            user_password = register_form.cleaned_data.get('password')
            if user.objects.filter(email__iexact=user_email).exists():
                register_form.add_error('email', 'ایمیل وارد شده تکراری است')
            else:
                new_user = user(email=user_email, email_active_code=get_random_string(72), is_active=False,
                                username=user_email)
                new_user.set_password(user_password)
                new_user.save()
                send_email(subject='فعالسازی حساب کاربری',
                           to=new_user.email,
                           context={'user':new_user},
                           template_name='emails/activate_account.html')
                return redirect(reverse('home_page'))
        context = {
            'register_form': register_form
        }
        return render(request, 'user_module/register.html', context)

تنظیمات ارسال ایمیل:

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

EMAIL_HOST_USER  را ایمیل خودم و

EMAIL_HOST_PASSWORD را پسورد 16 رقمی که گوگل ایجاد میکند قرار دادم

 ولی ایمیل ارسال نمشود.لطفا راهنمایی کنید چگونه این شکل را حل کنم

  • 1401/10/27
  • ساعت 21:25

سلام قسمت Email Backend رو با این جایگزین کن 

 

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

  • 1401/10/28
  • ساعت 08:42

خیلی ممنون درست شد:)


  • 1401/10/28
  • ساعت 10:58

سلام بسیار عاولی خواهش میکنم , تو ویدیو هم اینجوری بود فکر کنم

موفق باشید


  • 1401/10/28
  • ساعت 11:38

سلام دوست من

خوشحالم که مشکل برطرف شده

ممنونم از شما اقای اکبری عزیز

موفق باشین :)