小编Chu*_*uie的帖子

Django send_mail通过gmail很慢

当我尝试通过./manage.py shell发送时,发送一封电子邮件需要几分钟时间.当我在浏览器中提交表单后尝试发送用户验证电子邮件时,浏览器超时504,但最终会发送电子邮件.会发生什么事?

settings.py

...
EMAIL_HOST = 'smtp.gmail.com'                                                   
EMAIL_HOST_USER = 'myemail@gmail.com'                                      
EMAIL_PORT = 587                                                                
EMAIL_USE_TLS = True                                                            
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER                                            
EMAIL_HOST_PASSWORD = os.environ.get('PASSWORD')   
...
Run Code Online (Sandbox Code Playgroud)

views.py

class SignUpView(CreateView):                                                   
    model = User                                                                
    template_name = 'eventMap/register.html'                                    
    form_class = RegistrationForm                                               
    success_url="/"                                                             

    def form_valid(self, form):                                                 
                form.save()                                                     
                username = form.cleaned_data['username']                        
                email = form.cleaned_data['email']                              
                salt = hashlib.sha1(str(random.random())).hexdigest()[:5]          
                activation_key = hashlib.sha1(salt+email).hexdigest()           
                key_expires = datetime.datetime.today() + datetime.timedelta(2) 

                #Get user by username                                           
                user=User.objects.get(username=username)                        

                # Create and save user profile                                  
                new_profile = UserProfile(user=user, activation_key=activation_key,
                        key_expires=key_expires)                                
                new_profile.save()                                              

                # Send email with activation key …
Run Code Online (Sandbox Code Playgroud)

python email django gmail smtp

7
推荐指数
2
解决办法
1137
查看次数

标签 统计

django ×1

email ×1

gmail ×1

python ×1

smtp ×1