2015-01-29 1 views
0

Я недавно установил сайт Django 1.7.3 на своем сервере Ubuntu 12.04 с использованием Apache и mod_wsgi. Everythink отлично работает, кроме отправки почты. Я не понимаю, почему это не работает, поскольку я использовал ту же конфигурацию (порт, хост и т. Д.) На предыдущем веб-сайте PHP, и это сработало. Так что это должно быть что-то, что происходит от Python. Код и отправка электронной почты также работали локально.554 Ошибка почты SMTP Django

В моем settings.py файле я написал мой SMTP хостинга конфигурации:

EMAIL_HOST = 'SSL0.OVH.NET' 
EMAIL_PORT = 587 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'mypassword' 

А вот моя контактная функция:

def contact(request): 
    if request.method == 'POST': 
     form = ContactForm(request.POST) 
     if form.is_valid(): 
      subject = form.cleaned_data['subject'] 
      message = form.cleaned_data['message'] 
      sender = form.cleaned_data['sender'] 
      recipients = ['[email protected]'] 
      try: 
       send_mail(subject,message,sender, recipients) 
       return redirect('myapp:index') 
      except BadHeaderError: 
       return HttpResponse('Invalid header found.') 
    else: 
     form = ContactForm() 
    return render(request, 'myapp/form.html', {'form': form}) 

(я получаю ту же ошибку с send_mail('hello','a simple text message', '[email protected]', ['[email protected]']))

Мое сообщение об ошибке:

SMTPDataError at /contact/ 
    (554, b'mail server permanently rejected message (#5.3.0)') 
    Request Method: POST 
    Request URL: http://mywebsite.com/contact/ 
    Django Version: 1.7 
    Exception Type: SMTPDataError 
    Exception Value: (554, b'mail server permanently rejected message (#5.3.0)') 
    Exception Location: /usr/lib/python3.2/smtplib.py in sendmail, line 761 
    Python Executable: /usr/bin/python 
    Python Version:3.2.3 
    Python Path: 
    ['/opt/.virtualenvs/my_env/lib/python3.2/site-packages/distribute-0.6.24-py3.2.egg', 
    '/opt/.virtualenvs/my_env/lib/python3.2/site-packages/pip-1.1-py3.2.egg', 
    '/var/www/mywebsite', 
    '/opt/.virtualenvs/my_env/lib/python3.2/site-packages', 
    '/usr/lib/python3.2', 
    '/usr/lib/python3.2/plat-linux2', 
    '/usr/lib/python3.2/lib-dynload', 
    '/usr/local/lib/python3.2/dist-packages', 
    '/usr/lib/python3/dist-packages'] 

Большое спасибо за помощь!

UPDATE Я получил успешные результаты, используя Gmail в качестве SMTP-сервера, так что проблема исходит от OVH? (но это странно, потому что с теми же настройками для одной и той же учетной записи электронной почты OVH у меня нет проблем с веб-сайтом PHP на том же сервере). Я связался с ними и буду поддерживать вас.

+0

Возможно, ваш сервер видит сообщение как спам (ссылка: http://e-pyfan.com/content/SMTPDATAERROR1/en/). –

+0

Еще одна настройка для поиска здесь: https://groups.google.com/d/msg/django-users/Cy606otv3C0/ivb5Ws9yLqgJ –

+0

Найти решение? –

ответ

0

Я рекомендую проверить конфигурацию ваших хостов для SMTP, чтобы гарантировать, что он не отклоняет электронные письма, отправленные без адреса отправителя. Если это так, вам нужно указать отправителя в своем settings.py или вашей функции.

+0

Хорошо, спасибо за ваш ответ и ссылки, но я уверен, что есть явный отправитель с действительным адресом электронной почты. – Reveclair

1

Эй, я только что Google с некоторой частью вашей ошибки и получил это, пожалуйста, проверьте:

http://www.marshu.com/design-computer-tips-tricks-fixes-reason-554-mail-server-permanently-rejected-message-email-returned.php

, а также проверить это:

https://productforums.google.com/forum/#!topic/gmail/hM8C1wJXGCo

может быть, это поможет вам.

+0

Благодарим вас за ссылки, касающиеся первого: я не отправляю файлы с этой почтой, это так просто, как только может это получиться. Для второго это подтвердило тот факт, что проблема, вероятно, исходит от OVH. Я связался с ними и сохранил свой пост. – Reveclair

Смежные вопросы