Я работаю над приложением Django, которое имеет функцию отправки писем пользователям. В тестовом примере у меня есть контактная форма, которая отправляет данные формы как часть сообщения электронной почты, используя smtp через gmail. Я отключил captchas, поскольку мне сообщили в this video playlist, что я слежу за учебниками, но когда я нажимаю кнопку отправки, я почему-то получаю [Errno 111]. Увидев this и another SO post, я узнал, что мне нужно было запустить сайт на живом сервере (а не только на локальном хосте), чтобы иметь возможность отправить электронное письмо. Однако, когда я попробовал это на сервере, я получил ту же ошибку, что и раньше. Я почти уверен, что выполнил все правильные шаги, так что может быть проблемой?Django- [Errno 111] Connection отказался при использовании smtp
Вот отслеживающий ошибки:
Django Version: 1.8.6
Python Version: 2.7.6
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'artist_tracker')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware')
Traceback:
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
132. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/var/www/students/ceyron/bandsync/src/bandsync-repo/artist_tracker/views.py" in contact
58. send_mail(subject, contact_message, from_email, to_email, fail_silently =False)
File "/usr/local/lib/python2.7/dist-packages/django/core/mail/__init__.py" in send_mail
62. return mail.send()
File "/usr/local/lib/python2.7/dist-packages/django/core/mail/message.py" in send
303. return self.get_connection(fail_silently).send_messages([self])
File "/usr/local/lib/python2.7/dist-packages/django/core/mail/backends/smtp.py" in send_messages
107. sent = self._send(message)
File "/usr/local/lib/python2.7/dist-packages/django/core/mail/backends/smtp.py" in _send
123. self.connection.sendmail(from_email, recipients, message.as_bytes(linesep='\r\n'))
File "/usr/lib/python2.7/smtplib.py" in sendmail
731. raise SMTPSenderRefused(code, resp, from_addr)
Exception Type: SMTPSenderRefused at /contact/
Exception Value: (530, '5.5.1 Authentication Required. Learn more at\n5.5.1 https://support.google.com/mail/answer/14257 j34sm10137713qkh.39 - gsmtp', u'[email protected]')
форма контакта из views.py файла
from django.shortcuts import render
from django.conf import settings
from .forms import ContactForm, SignUpForm
# Create your views here.
from django.core.mail import send_mail
def contact(request):
form = ContactForm(request.POST or None)
if form.is_valid():
# for key, value in form.cleaned_data.iteritems():
# print key, value
form_email = form.cleaned_data.get("email")
form_message = form.cleaned_data.get("message")
form_full_name = form.cleaned_data.get("full_name")
# print form.cleaned_data
subject = "Site contact form"
from_email = settings.EMAIL_HOST_USER
to_email = [from_email, '[email protected]']
contact_message = '''
%s: %s via %s
'''%(form_full_name, form_message, form_email)
send_mail(subject, contact_message, from_email, [to_email], fail_silently = True)
context = {
"form": form
}
return render(request, "forms.html", context)
toemail = '' .join (to_email) и передать строку send_mail – pavan