2011-12-22 20 views
6

django şifre sıfırlama çalışmasını almaya çalışıyorum ama sıfırlama e-postası gönderilmiyor.Django şifre sıfırlama. Posta göndermiyor

E-posta adresimin düzgün bir şekilde yapılandırıldığını biliyorum çünkü bunlar hem kabukta hem de görünümlerimden birinde çalışıyor (kendim için destek e-postası almak için kullanıyorum).

from django.core.mail import send_mail 
send_mail('Subject here', 'Here is the message.', 
      '[email protected]',['[email protected]'], fail_silently=False) 

benim şifre sıfırlama görünümüne alabilirsiniz (şifre/reset/) ve bunu maillerimi verdikten sonra doğru/ yapılması/şifre/sıfırlamak için beni yönlendirir ama gönderir gelmez e-posta.

İşte benim urls.py:

<html> 
<head> 
    <link rel="stylesheet" type="text/css" href="/media/css/style_login.css" /> 
    <title>Información de acceso requerida</title> 
</head> 
<body> 
    <div id="wrapper"> 
     <h1>Recuperar password</h1> 
     <p>Utilice este formulario cuando desee recuperar el password para su usuario.</p> 
     {% if form.errors %} 
     <p>No hay un usuario registrado con ese correo electronico.</p> 
     {% endif %} 
     <form method="post" action="{% url django.contrib.auth.views.password_reset_done %}"> 
      {% csrf_token %} 
      {{ form }} 
      <input class="login" type="submit" value="Recuperar" /> 
     </form> 
    </div> 
</body> 

Herhangi bir fikir:

İşte
(r'^password/reset/$','django.contrib.auth.views.password_reset'), 
(r'^password/reset/done/$','django.contrib.auth.views.password_reset_done'), 
(r'^password/reset/confirm/$','django.contrib.auth.views.password_reset_confirm'), 
(r'^password/reset/complete/$','django.contrib.auth.views.password_reset_confirm'), 
(r'^password/change/$','django.contrib.auth.views.password_change'), 
(r'^password/change/done/$','django.contrib.auth.views.password_change_done'), 

benim password_reset_form.html var? Teşekkürler

+0

Lütfen yorumunuzu aşağıya gerçek bir cevap olarak açın. İki gün sonra kabul edildi olarak işaretleyebilirsiniz. Bu soru Cevapsız Sorular sekmesinden uzaklaşacaktır. –

+0

Cool, topluluğa yeni katılıyorum ve bu türden ipuçları gerçekten yararlı oluyor :) – Darkade

+0

Tekrar hoş geldiniz, geri dönüp temizlik yapmamız için çok teşekkürler! –

cevap

7

Hostgator'u sağlayıcım olarak kullandığımı belirtmeliydim. Yani bu benim ayarlarımdır.

+1

Aynı sorunu yaşadım, eksik değer DEFAULT_FROM_EMAIL. Bu ayarlanmadıysa, e-posta gönderilmez. – Max

3

Benim durumumda kullanıcıları create_user() kullanarak oluşturdum. Fikrim, bir grup hesap oluşturmak ve daha sonra, şifrelerini ayarlamak için kullanıcılara şifre sıfırlama formuna gidebileceklerini söylemekti. Onlara 'Şifre kullan' hoşgeldin123 'demelisiniz ve sonra şifrenizi değiştirmeyi unutmayın' ya da benzeri bir şey. Ben Password=Nonecreate_user() için şifre sıfırlar gönderilmez geçti de eğer Password='foo' geçmesi ya olmasaydı

buldum. Bunun nedeni, Django'nun yerel olarak kimlik doğrulaması yapmanın gerekmediğini, bunun yerine LDAP veya benzerlerini kullanması gerektiğini bilmesi için boş bir parola kullanmasıdır.

Yani şimdi bunu:

User.objects.create_user(
    user_name, 
    email=user_email, 
    password=os.urandom(32), 
) 

Ve ben onların yeni hesaplar için şifre sıfırlama işlevini kullanmak yönlendirebilir. Yine de, kullanıcılara hesap etkinleştirmesi için e-postaları otomatik olarak gönderecek bir create_user seçeneğim olsaydı harika olurdu.

+0

Teşekkürler, saçlarımı anlamaya çalışırken saatlerce çekiyorum. Btw, 'parola = User.objects.make_random_password()' –

+0

Teşekkürler! Bilginize ne os.urandom() veya make_random_password() benim için çalıştı, ben kullandı: django.contrib.auth.hashers dan make_password şifre = make_password (User.objects.make_random_password()) – python1981

+0

Herkes düşünce veya bunu gerektiği içe IMMEDIAGTELY'yi durdurun ve kullanıcıların kaydolmasına izin vermek için özel formlar oluşturun.Yönetici onayı, e-posta varyasyonu veya benzerleri gibi şeyler yapmak isterseniz ... http://django-registration.readthedocs.io/en adresini kullanın. –

İlgili konular