2015-11-05 17 views
0

Я пытаюсь получить контактную форму на личном сайте для работы. Я использую Outlook smtp. Сейчас он дает мне следующую ошибку:Ошибка отправки электронной почты Django

Traceback:

Environment: 


Request Method: POST 
Request URL: ******* 

Django Version: 1.8.1 
Python Version: 3.4.0 
Installed Applications: 
('django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles') 
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 "/home/Nmaster88/Ngranja/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response 
    132.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 
File "/home/Nmaster88/Ngranja/Ngranja/Ngranja/views.py" in sendmail 
    23.    send_mail(request.POST['contactSubject'],"From: "+request.POST['contactEmail']+'\n\n'+request.POST['contactMessage'],request.POST['contactEmail'],['[email protected]'],) 
File "/home/Nmaster88/Ngranja/lib/python3.4/site-packages/django/core/mail/__init__.py" in send_mail 
    62.  return mail.send() 
File "/home/Nmaster88/Ngranja/lib/python3.4/site-packages/django/core/mail/message.py" in send 
    303.   return self.get_connection(fail_silently).send_messages([self]) 
File "/home/Nmaster88/Ngranja/lib/python3.4/site-packages/django/core/mail/backends/smtp.py" in send_messages 
    100.    new_conn_created = self.open() 
File "/home/Nmaster88/Ngranja/lib/python3.4/site-packages/django/core/mail/backends/smtp.py" in open 
    58.    self.connection = connection_class(self.host, self.port, **connection_params) 
File "/usr/lib/python3.4/smtplib.py" in __init__ 
    242.    (code, msg) = self.connect(host, port) 
File "/usr/lib/python3.4/smtplib.py" in connect 
    321.   self.sock = self._get_socket(host, port, self.timeout) 
File "/usr/lib/python3.4/smtplib.py" in _get_socket 
    292.           self.source_address) 
File "/usr/lib/python3.4/socket.py" in create_connection 
    509.   raise err 
File "/usr/lib/python3.4/socket.py" in create_connection 
    500.    sock.connect(sa) 

Exception Type: ConnectionRefusedError at/
Exception Value: [Errno 111] Connection refused 

мои настройки:

EMAIL_HOST = 'smtp-mail.outlook.com' 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'mypassword' 
EMAIL_PORT = 25 
EMAIL_USE_TLS = True 

вид файла:

from django.http import HttpResponseRedirect 
from django.core.mail import send_mail 
from django.shortcuts import render 

def sendmail(request): 
    errors=[] 
    if request.method == 'POST': 
     if not request.POST.get('contactName',''): 
      errors.append('Coloca um nome.') 
     if not request.POST.get('contactEmail',''): 
      errors.append('Coloca um email.') 
     if not request.POST.get('contactSubject',''): 
      errors.append('Coloca um assunto.') 
     if not request.POST.get('contactMessage',''): 
      errors.append('Coloca um assunto.') 
     if not errors: 
      subject=request.POST['contactSubject'] 
      email=request.POST['contactEmail'] 
      message=request.POST['contactMessage'] 
      send_mail(subject,"From: "+email+'\n\n'+message,email,['[email protected]'], fail_silently=False) 
      return HttpResponseRedirect('/thankyou/') 
    return render(request, "mypage.html", {'errors': errors}) 

Кто-нибудь имеет понятия о том, что неправильно? При необходимости я могу предоставить дополнительную информацию о приложении

[EDIT] Я размещаю страницу на pythonanywhere.com, имеет ли ошибка что-то общее с сервером?

[EDIT] SOLVED Pythonanywhere для бесплатных пользователей работает только для Gmail, и я должен был дать ему разрешение на менее безопасные приложения! Теперь он работает нормально.

+0

И если вы откроете REPL, импортируете smtplib и попытаетесь подключиться к вашему SMTP-серверу, вы можете получить фактическое соединение? Используете ли вы локальный сервер обмена или Office 365? Используете ли вы TLS или SSL SNMP? –

+0

Вы используете [их брандмауэр] (https://help.pythonanywhere.com/pages/SMTPForFreeUsers/)? – dhke

+0

На своих форумах говорят, что работает только gmail gmail. Теперь я использую конфигурацию gmail. Ошибка у меня теперь другая. У меня есть SMTPAuthenticationError. – Nmaster88

ответ

0

Попробуйте использовать use_ssl=True в настройках SMTP и сменив порт на 465.

Для получения списка всех настроек, которые вы можете настроить, вы можете напрямую обратиться к Django SMTP options. Также укажите, какую версию Django вы используете для создания своего приложения?

+0

Django Версия: 1.8.1 – Nmaster88

+0

@ Nmaster88, Вы пробовали варианты выше? –

+0

да я пробовал, все равно не успел, может, я сделал что-то не так, я не знаю. – Nmaster88

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