(550, b'Неверный заголовок отправителя (LOCAL) ') - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь создать контактную форму электронной почты в django, используя функцию send_mail ().Он отлично работает в тестовой среде, но не в производстве.При отправке формы я получаю ошибку сервера (500) в браузере.Я получаю сообщение об ошибке django по электронной почте со следующим:

Тип исключения: SMTPDataError Значение исключения: (550, b'Неверный заголовок отправителя (LOCAL) ')

В настройках я использую тот же адрес электронной почтыдля сообщения об ошибках и для формы электронной почты, чтобы она работала в одном случае, но не в другом.Что означает вышеуказанная ошибка?Есть идеи как это исправить?

kontakt.html

<form method="post">
    {% csrf_token %}
    {{ form.non_field_errors }}
    <div class="fieldWrapper">
        {{ form.from_email.errors }}
        <label for="{{ form.from_email.id_for_label }}">Email:</label><br/>
        {{ form.from_email }}
    </div>
    <div class="fieldWrapper">
        {{ form.subject.errors }}
        <label for="{{ form.subject.id_for_label }}">Subject:</label><br/>
        {{ form.subject }}
    </div>
    <div class="fieldWrapper">
        {{ form.message.errors }}
        <label for="{{ form.message.id_for_label }}">Message:</label><br/>
        {{ form.message }}
    </div>
    <div class="form-actions">
      <button type="submit" class="btn btn-success">Submit</button>
    </div>
</form>

views.py

from django.shortcuts import render, redirect
from django.core.mail import send_mail, BadHeaderError
from django.http import HttpResponse, HttpResponseRedirect
from userform.forms import ContactForm

def kontakt(request):
    if request.method == 'GET':
        form = ContactForm()
    else:
        form = ContactForm(request.POST)
        if form.is_valid():
            subject = form.cleaned_data['subject']
            from_email = form.cleaned_data['from_email']
            message = form.cleaned_data['message']
            try:
                send_mail(subject, message, from_email, ['admin@example.com'])
            except BadHeaderError:
                return HttpResponse('Invalid header found.')
            return redirect('thanks')
    return render(request, "kontakt.html", {'form': form})


def thanks(request):
    return HttpResponse('Message sent')

forms.py

from django import forms


class ContactForm(forms.Form):
    from_email = forms.EmailField(required=True)
    subject = forms.CharField(required=True)
    message = forms.CharField(widget=forms.Textarea)

urls.py

from django.conf.urls import url
from userform import views

urlpatterns = [
    ...
    url(r'^kontakt/', views.kontakt, name='kontakt'),
    url(r'^thanks/$', views.thanks, name='thanks'),
]

settings.py

EMAIL_HOST = 'smtp.example.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'test@example.com'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_USE_TLS = True
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

SERVER_EMAIL = 'test@example.com'
ADMINS=[('admin','admin@example.com')]

Traceback

File "/home/pdudko/venv/lib/python3.4/site-packages/django/core/handlers/exception.py" in inner
  35.             response = get_response(request)

File "/home/pdudko/venv/lib/python3.4/site-packages/django/core/handlers/base.py" in _get_response
  128.                 response = self.process_exception_by_middleware(e, request)

File "/home/pdudko/venv/lib/python3.4/site-packages/django/core/handlers/base.py" in _get_response
  126.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/home/pdudko/apps/userform/views.py" in kontakt
  88.                 send_mail(subject, message, from_email, ['admin@example.com'])

File "/home/pdudko/venv/lib/python3.4/site-packages/django/core/mail/__init__.py" in send_mail
  60.     return mail.send()

File "/home/pdudko/venv/lib/python3.4/site-packages/django/core/mail/message.py" in send
  294.         return self.get_connection(fail_silently).send_messages([self])

File "/home/pdudko/venv/lib/python3.4/site-packages/django/core/mail/backends/smtp.py" in send_messages
  110.                 sent = self._send(message)

File "/home/pdudko/venv/lib/python3.4/site-packages/django/core/mail/backends/smtp.py" in _send
  126.             self.connection.sendmail(from_email, recipients, message.as_bytes(linesep='\r\n'))

File "/usr/lib/python3.4/smtplib.py" in sendmail
  800.             raise SMTPDataError(code, resp)

Exception Type: SMTPDataError at /kontakt/
Exception Value: (550, b'Incorrect sender header (LOCAL)')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...