Я установил это приложение django-contact-form. Когда я хочу отправить электронное письмо на свою учетную запись gmail через контактную форму, я не получаю сообщения об ошибке, и меня перенаправляют на мой contact_form_sent.html, но письмо не отправляется. Может ли кто-нибудь помочь мне в отладке этой проблемы. Это проблема smtp-сервера, потому что я тестирую с локального хоста???
Мои настройки следующие: они аналогичны Patrick Beeson. :
settings.py Я уже проверил другие учетные записи электронной почты и их соответствующие порты.
DEBUG = True
TEMPLATE_DEBUG = DEBUG
ADMINS = (
#('***', '***@googlemail.com'),
)
MANAGERS = ADMINS
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_PASSWORD = '********'
EMAIL_HOST_USER = '******@googlemail.com'
EMAIL_PORT = 587 #465 or 587
#EMAIL_SUBJECT_PREFIX = 'Django Test mail'
EMAIL_USE_TLS = True
urls.py
(r'^contact/', include('contact_form.urls')),
contact_form.html
...
<form method="POST">
<ol>
{{ form.as_p }}
<li>
<input type="submit" name="submit" value={% trans "Senden" %} />
<div class="clr"></div>
</li>
</ol>
</form>
...
contact_form.txt
{{ name }}
{{ email }}
{{ body }}
contact_form_sent.html
{% block content %}
<h2>{% trans "Your message was sent." %}</h2>
{% endblock %}
contact_form_subject.txt
message from {{ name }}
ОТРЕДАКТИРОВАНО
при настройке action="."
в моем contact_form.html и добавлении print request.POST
я получаю это на своем сервере разработки на локальном хосте после нажатия кнопки отправки:
<QueryDict: {u'body': [u'This is my Test message for you !!\r\n\r\nBest Regards\r\nMr. NoOne'], u'name': [u'testname'], u'submit': [u'Send'], u'email': [u'anyone@myemail.
com']}>
ОТРЕДАКТИРОВАНО
Если я пишу свой собственный view.py, я получаю эту ошибку:
Request Method: POST
Request URL: http://127.0.0.1:8000/en/contact/
Exception Type: error
Exception Value:
(10065, 'No route to host')
Exception Location: C:\Python25\lib\smtplib.py in connect, line 310
Python Executable: C:\Python25\python.exe
Python Version: 2.5.0
Python Path: ['H:\\webpage', 'C:\\WINDOWS\\system32\\python25.zip', 'C:\\Python25\\DLLs', 'C:\\Python25\\lib', 'C:\\Python25\\lib\\plat-win', 'C:\\Python25\\lib\\lib-tk', 'C:\\Python25', 'C:\\Python25\\lib\\site-packages']
мой новый собственный views.py выглядит так:
from django.conf import settings
from django.http import HttpResponse
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.core.mail import send_mail
from contact_form.forms import ContactForm
def email_contact(request, form_class=ContactForm, template_name='contact_form/contact_form.html'):
form = form_class(data=request.POST, files=request.FILES, request=request)
if request.method == "POST":
send_mail('Subject here', 'Here is the message.', '[email protected]', ['[email protected]'], fail_silently=False)
print request.POST
return render_to_response(template_name, { 'form': form }, context_instance=RequestContext(request))
Что здесь происходит не так?