2009-08-25 8 views
11

ich benutze django-registrierung, alles ist in ordnung, die bestätigungsmail wurde im plaintext gesendet, aber weiß im fixed und sendet in html, aber ich habe ein wurf problem ... der hTML-Code zeigt:django + sende email in html mit django-registrierung

<a href="http://www.example.com/accounts/activate/46656b86eefc490baf4170134429d83068642139/">http://www. example.com/accounts/activate/46656b86eefc490baf4170134429d83068642139/</a> 

und i dont müssen den hTML-Code wie die

...

Jede Idee zeigen?

Dank

Antwort

14

ich sowohl eine Textversion und eine HTML-Version zu senden würde empfehlen. Schauen Sie in die models.py der django-Registrierung für:

send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [self.user.email]) 

und stattdessen etwas tun, wie von den docs http://docs.djangoproject.com/en/dev/topics/email/#sending-alternative-content-types

from django.core.mail import EmailMultiAlternatives 

subject, from_email, to = 'hello', '[email protected]', '[email protected]' 
text_content = 'This is an important message.' 
html_content = '<p>This is an <strong>important</strong> message.</p>' 
msg = EmailMultiAlternatives(subject, text_content, from_email, [to]) 
msg.attach_alternative(html_content, "text/html") 
msg.send() 
+0

Ja Paul, thans für die Wiedergabe, aber funktioniert nicht ich in dieser Art und Weise und nichts tat ... aber jetzt ist ok :), jetzt nur den Link setzen, ohne Asinox

+0

Das wird eine Text-E-Mail senden, für die einige Clients Links erstellen. Wenn Sie jemals mehr interessantes HTML benötigen, müssen Sie tun, was ich empfohlen habe. –

+0

ja, ich habe versucht, aber nicht arbeiten, aber es ist in Ordnung :) krank versuchen Sie einen Wurf mehr :) – Asinox

27

zu vermeiden Um django-Registrierung Patchen, sollten Sie das RegistrationProfile Modell erweitern mit proxy=True:

models.py

Und in Ihrer Registrierung Backend verwenden nur HtmlRegistrationProfile statt RegistrationProfile.

+0

Dies ist der Weg zu gehen. Gute Arbeit. – ajt

+0

Wie registriere ich das neue Profil mit dem Registrierungs-Backend? – Sam

+10

Wie setze ich das Backend auf HtmlRegistration Profil statt RegistrationProfile? – AlexBrand

2

erfolgreich zu verwenden, ich weiß, das ist alt und das Registrierungspaket wird nicht mehr gepflegt. Für den Fall, dass jemand das noch will. Die zusätzlichen Schritte WRT auf die Antwort von @bpierre sind:
- Unterklasse der RegistrationView, dh der App views.py

class MyRegistrationView(RegistrationView): 
... 
def register(self, request, **cleaned_data): 
    ... 
    new_user = HtmlRegistrationProfile.objects.create_inactive_user(username, email, password, site) 

- in Ihrem urls.py zum Teil eingestuft Ansicht die Ansicht ändern, das heißt - Liste item

url(r'accounts/register/$', MyRegistrationView.as_view(form_class=RegistrationForm), name='registration_register'),' 
Verwandte Themen