2016-07-17 17 views
0

Ich habe ein Problem beim Senden von E-Mail von einem Kontaktformular mit Django. Ich habe smtp config in settings.py gesetzt und ich kann es von lokal senden. Aber im Produktionsserver bekomme ich einen 504 Gateway Timeout Error. Dies ist der Inhalt des Fehlerprotokolls.504 Gateway Timeout Senden von E-Mail

 [Sun Jul 17 18:17:46.142782 2016] [wsgi:error] [pid 16049] [client XXXXX:37298] Timeout when reading response headers from daemon process 'domain.gal': /home/wsgi/web/domain.gal/private/django/domain.gal/domain/wsgi.py, referer: http://domain.gal/contacto/ 
[Sun Jul 17 18:17:49.120971 2016] [wsgi:error] [pid 16046] Internal Server Error: /contacto/ 
[Sun Jul 17 18:17:49.121004 2016] [wsgi:error] [pid 16046] Traceback (most recent call last): 
[Sun Jul 17 18:17:49.121008 2016] [wsgi:error] [pid 16046] File "/home/wsgi/web/domain.gal/private/django/env/lib/python3.4/site-packages/django/core/handlers/base.py", line 149, in get_response 
[Sun Jul 17 18:17:49.121012 2016] [wsgi:error] [pid 16046]  response = self.process_exception_by_middleware(e, request) 
[Sun Jul 17 18:17:49.121015 2016] [wsgi:error] [pid 16046] File "/home/wsgi/web/domain.gal/private/django/env/lib/python3.4/site-packages/django/core/handlers/base.py", line 147, in get_response 
[Sun Jul 17 18:17:49.121018 2016] [wsgi:error] [pid 16046]  response = wrapped_callback(request, *callback_args, **callback_kwargs) 
[Sun Jul 17 18:17:49.121021 2016] [wsgi:error] [pid 16046] File "/home/wsgi/web/domain.gal/private/django/domain.gal/home/views.py", line 43, in contacto 
[Sun Jul 17 18:17:49.121023 2016] [wsgi:error] [pid 16046]  send_mail(subject, message, from_email, ['[email protected]']) 
[Sun Jul 17 18:17:49.121026 2016] [wsgi:error] [pid 16046] File "/home/wsgi/web/domain.gal/private/django/env/lib/python3.4/site-packages/django/core/mail/__init__.py", line 61, in send_mail 
[Sun Jul 17 18:17:49.121029 2016] [wsgi:error] [pid 16046]  return mail.send() 
[Sun Jul 17 18:17:49.121032 2016] [wsgi:error] [pid 16046] File "/home/wsgi/web/domain.gal/private/django/env/lib/python3.4/site-packages/django/core/mail/message.py", line 292, in send 
[Sun Jul 17 18:17:49.121034 2016] [wsgi:error] [pid 16046]  return self.get_connection(fail_silently).send_messages([self]) 
[Sun Jul 17 18:17:49.121037 2016] [wsgi:error] [pid 16046] File "/home/wsgi/web/domain.gal/private/django/env/lib/python3.4/site-packages/django/core/mail/backends/smtp.py", line 100, in send_messages 
[Sun Jul 17 18:17:49.121040 2016] [wsgi:error] [pid 16046]  new_conn_created = self.open() 
[Sun Jul 17 18:17:49.121043 2016] [wsgi:error] [pid 16046] File "/home/wsgi/web/domain.gal/private/django/env/lib/python3.4/site-packages/django/core/mail/backends/smtp.py", line 58, in open 
[Sun Jul 17 18:17:49.121060 2016] [wsgi:error] [pid 16046]  self.connection = connection_class(self.host, self.port, **connection_params) 
[Sun Jul 17 18:17:49.121063 2016] [wsgi:error] [pid 16046] File "/usr/lib64/python3.4/smtplib.py", line 242, in __init__ 
[Sun Jul 17 18:17:49.121066 2016] [wsgi:error] [pid 16046]  (code, msg) = self.connect(host, port) 
[Sun Jul 17 18:17:49.121069 2016] [wsgi:error] [pid 16046] File "/usr/lib64/python3.4/smtplib.py", line 321, in connect 
[Sun Jul 17 18:17:49.121071 2016] [wsgi:error] [pid 16046]  self.sock = self._get_socket(host, port, self.timeout) 
[Sun Jul 17 18:17:49.121074 2016] [wsgi:error] [pid 16046] File "/usr/lib64/python3.4/smtplib.py", line 292, in _get_socket 
[Sun Jul 17 18:17:49.121076 2016] [wsgi:error] [pid 16046]  self.source_address) 
[Sun Jul 17 18:17:49.121079 2016] [wsgi:error] [pid 16046] File "/usr/lib64/python3.4/socket.py", line 512, in create_connection 
[Sun Jul 17 18:17:49.121081 2016] [wsgi:error] [pid 16046]  raise err 
[Sun Jul 17 18:17:49.121084 2016] [wsgi:error] [pid 16046] File "/usr/lib64/python3.4/socket.py", line 503, in create_connection 
[Sun Jul 17 18:17:49.121086 2016] [wsgi:error] [pid 16046]  sock.connect(sa) 
[Sun Jul 17 18:17:49.121091 2016] [wsgi:error] [pid 16046] TimeoutError: [Errno 110] Connection timed out 
[Sun Jul 17 18:17:49.121097 2016] [wsgi:error] [pid 16046] 

Irgendeine Idee plz?

+0

Installierte sendmail? –

Antwort

0

Ihre App kann keine Verbindung zum angegebenen SMTP-Server herstellen. Überprüfen Sie auf die folgenden Probleme:

  • Sind Ihre SMTP-Details korrekt?
  • Haben Sie einen laufenden SMTP-Server am konfigurierten Host/Port?
  • Wird die Verbindung von einer Firewall blockiert?

Aus dem Protokoll ist ersichtlich, dass die SMTP-Verbindung Zeitlimit ist. Bitte geben Sie weitere Details (Code/Konfiguration) an, um besser zu spekulieren.

0

Ok masnum ist richtig. Ich habe den Port und die Deaktivierung von TLS geändert und es funktioniert. Aber ich habe zwei Fragen. Meine Konfiguration war die folgende:

EMAIL_PORT = 587 
EMAIL_USE_TLS = True 

Ist das korrekt? Ich kann das in localhost verwenden, warum nicht im Produktionsserver? Beschäftigter Hafen vielleicht?

Und die andere Frage. Ich benutze dies:

try: 
      send_mail(subject, message, from_email, ['[email protected]']) 
     except BadHeaderError: 
      messages.warning(request, 'Ha ocurrido un fallo. Inténtelo de nuevo más tarde.') 
      return render(request, "contacto.html", {'form': form}) 

     except TimeoutError: 
      messages.warning(request, 'Ha ocurrido un fallo. Inténtelo de nuevo más tarde.') 
      return render(request, "contacto.html", {'form': form}) 

Warum wird der Fehler nicht von TimeoutError anstelle von 504 Apache eingefangen?

Txh