Les transmito una pequeña receta para poner en sus proyectos de Django un formulario de contacto que utiliza gmail como smtp:
django-admin.py startproject contacto
cd contacto
mkdir templates(modificamos)
nano settings.py
TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
'/home/TUUSUARIO/contacto/templates/',)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'contacto.formulario',)
EMAIL_HOST='
smtp.gmail.com'
EMAIL_HOST_USER='
t...@gmail.com'
EMAIL_HOST_PASSWORD='contraseña'
EMAIL_PORT=587
EMAIL_USE_TLS=True
Guardamos....
python manage.py startapp formulario
nano urls.pyfrom django.conf.urls.defaults import *
from contacto.formulario.views import *
# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()
urlpatterns = patterns('',
# Example:
# (r'^contacto/', include('contacto.foo.urls')),
# Uncomment the admin/doc line below and add 'django.contrib.admindocs'
# to INSTALLED_APPS to enable admin documentation:
# (r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
# (r'^admin/(.*)', admin.site.root),
(r'^contacto/$', contacto), #(r'^enviado/$', enviado),
)
urlpatterns += patterns('django.views.generic.simple',
(r'^enviado/$', 'direct_to_template', {'template':'enviado.html'}),
)Guardamos...
cd formulario
nano forms.pyfrom django import forms
class ContactForm(forms.Form):
sucorreo=forms.EmailField()
mensaje=forms.CharField()
Guardamos...
nano views.py#-*- coding: utf-8 -*-
# Create your views here.
from contacto.formulario.forms import ContactForm
from django.template import RequestContext, loader
from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect
def contacto(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
s=form.cleaned_data['sucorreo']
m=form.cleaned_data['mensaje']
from django.core.mail import send_mail
send_mail('Mensaje desde su web', u'Dirección: %s, Mensaje: %s'%(s,m), '
remi...@gmail.com',['
des...@gmail.com'], fail_silently=False)
return HttpResponseRedirect('/enviado/')
else:
form=ContactForm()
return render_to_response('contact.html', {'form':form,})
cd ..
cd templates
nano contact.html<html>
<body>
<center>
<form method="POST" action=".">
<table>
{{ form }}
</table>
<input type="submit" value="enviar">
</form>
</center>
</body>
</html>
Guardamos...
nano enviado.html
<html>
<body>
Enviado!
</body>
</html>
Guardamos
cd ..
python manage.py runserver
127.0.0.1:8000/contacto/No se si me he dejado algo en el tintero.