R
R
Ramplin2018-02-07 19:27:16
Django
Ramplin, 2018-02-07 19:27:16

The feedback form is not working. What is the problem?

Hello.
I made a feedback form, it works on the local server, messages come to the mail. Then I uploaded the project to pythonanywhere.com, the form stopped working.
In the logs it gives this:

Internal Server Error: /contact#012Traceback (most recent call last):#012 File "/home/Ramplin/HomeSky/myvenv/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner#012 response = get_response(request)#012 File "/home/Ramplin/HomeSky/myvenv/lib/python3.6/site-packages/django/core/handlers/base.py", line 187, in _get_response#012 response = self.process_exception_by_middleware(e, request)#012 File "/home/Ramplin/HomeSky/myvenv/lib/python3.6/site-packages/django/core/handlers/base.py", line 185, in _get_response#012 response = wrapped_callback(request, *callback_args, **callback_kwargs)#012 File "/home/Ramplin/HomeSky/emailform/views.py", line 23, in contactView#012 send_mail(subject, message, 'rampl123 @mail.ru', recipients)#012 File "/home/Ramplin/HomeSky/myvenv/lib/python3.6/site-packages/django/core/mail/__init__.py", line 62, in send_mail#012 return mail.send()#012 File "/home/ Ramplin/HomeSky/myvenv/lib/python3.6/site-packages/django/core/mail/message.py", line 348, in send#012 return self.get_connection(fail_silently).send_messages([self])#012 File "/home/Ramplin/HomeSky/myvenv/lib/python3.6/site-packages/django/core/mail/backends/smtp.py", line 104, in send_messages#012 new_conn_created = self.open()#012 File "/home/Ramplin/HomeSky/myvenv/lib/python3.6/site-packages/django/core/mail/backends/smtp.py", line 64, in open#012 self.connection = self.connection_class(self .host, self.port, **connection_params)#012 File "/usr/lib/python3.6/smtplib.py", line 1029, in __init__#012 source_address)#012 File "/usr/lib/python3.6/smtplib.py", line 251, in __init__#012 (code, msg) = self.connect(host, port)#012 File "/usr/lib/python3.6/smtplib. py", line 335, in connect#012 self.sock = self._get_socket(host, port, self.timeout)#012 File "/usr/lib/python3.6/smtplib.py", line 1035, in _get_socket# 012 self.source_address)#012 File "/usr/lib/python3.6/socket.py", line 722, in create_connection#012 raise err#012 File "/usr/lib/python3.6/socket.py", line 713, in create_connection#012 sock.connect(sa)#012OSError: [Errno 101] Network is unreachable/usr/lib/python3.6/smtplib.py", line 1035, in _get_socket#012 self.source_address)#012 File "/usr/lib/python3.6/socket.py", line 722, in create_connection#012 raise err#012 File "/usr/lib/python3.6/socket.py", line 713, in create_connection#012 sock.connect(sa)#012OSError: [Errno 101] Network is unreachable/usr/lib/python3.6/smtplib.py", line 1035, in _get_socket#012 self.source_address)#012 File "/usr/lib/python3.6/socket.py", line 722, in create_connection#012 raise err#012 File "/usr/lib/python3.6/socket.py", line 713, in create_connection#012 sock.connect(sa)#012OSError: [Errno 101] Network is unreachable

This is in my views
from django.shortcuts import render
from django.http import HttpResponse
from django.core.mail import send_mail, BadHeaderError

from emailform.forms import ContactForm


def contactView(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        # Если форма заполнена корректно, сохраняем все введённые пользователем значения
        if form.is_valid():
            subject = form.cleaned_data['subject']
            sender = form.cleaned_data['sender']
            message = form.cleaned_data['message']
            copy = form.cleaned_data['copy']

            recipients = ['моя почта']
            # Если пользователь захотел получить копию себе, добавляем его в список получателей
            if copy:
                recipients.append(sender)
            try:
                send_mail(subject, message, 'моя почта', recipients)
            except BadHeaderError:  # Защита от уязвимости
                return HttpResponse('Invalid header found')
            # Переходим на другую страницу, если сообщение отправлено
            return render(request, 'thanks/thanks.html')
    else:
        # Заполняем форму
        form = ContactForm()
    # Отправляем форму на страницу
    return render(request, 'thanks/error.html', {'form': form})

This is what I put in the settings
EMAIL_HOST = 'smtp.mail.ru'
EMAIL_HOST_USER = 'моя почта'
EMAIL_HOST_PASSWORD = 'пароль от почты'
EMAIL_PORT = 465
EMAIL_USE_SSL = True

Answer the question

In order to leave comments, you need to log in

1 answer(s)
S
Sergey Gornostaev, 2018-02-07
@sergey-gornostaev

The "Network is unreachable" error means that the pythonanywhere.com server cannot connect to smtp.mail.ru. I suspect that mail.ru has long been taken down by spammers from these servers.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question