Время ожидания соединения при отправке электронной почты в Django - PullRequest
2 голосов
/ 23 декабря 2009

Я прочитал с

http://www.packtpub.com/article/friends-via-email-social-web-application-django-1.0

и следуйте инструкциям: => И поменять мой setting.py

SITE_HOST = '127.0.0.1:8000'
DEFAULT_FROM_EMAIL = 'KSO Publisher <soeng@xxxx.com.kh>'
EMAIL_HOST = 'smtp.xxxx.com.kh'
EMAIL_PORT = '25'
EMAIL_HOST_USER = 'myusernamea@xxxx.com.kh'
EMAIL_HOST_PASSWORD = 'mypassword'
EMAIL_USE_TLS = False

после того, как я иду в командную строку

python@python-desktop:~/workspace/kso$ python manage.py shell
Python 2.5.2 (r252:60911, Jul 22 2009, 15:35:03) 
[GCC 4.2.4 (Ubuntu 4.2.4-1ubuntu3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django.core.mail import send_mail
>>> emails = send_mail('Subject', 'Body of the message.','soeng@xxxx.com.kh',['pythonkhmer@gmail.com'])

Я получил сообщение об ошибке.

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/var/lib/python-support/python2.5/django/core/mail.py", line 345, in send_mail
    connection=connection).send()
  File "/var/lib/python-support/python2.5/django/core/mail.py", line 271, in send
    return self.get_connection(fail_silently).send_messages([self])
  File "/var/lib/python-support/python2.5/django/core/mail.py", line 166, in send_messages
    new_conn_created = self.open()
  File "/var/lib/python-support/python2.5/django/core/mail.py", line 131, in open
    local_hostname=DNS_NAME.get_fqdn())
  File "/usr/lib/python2.5/smtplib.py", line 244, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/lib/python2.5/smtplib.py", line 310, in connect
    raise socket.error, msg
error: (110, 'Connection timed out')

Кто-нибудь знает, в чем именно проблема. И как я могу отправлять почту с помощью django framworks

Ссылка, которую я прочитал:

Ответы [ 2 ]

10 голосов
/ 19 января 2010

«Время ожидания истекло» означает, что Django не может подключиться к вашему почтовому серверу. Введите это в командной строке:

telnet smtp.xxxx.com.kh 25

Вы должны получить ответ от почтового сервера, что-то вроде:

220 rufus Python SMTP proxy version 0.2

Если вы не получили ответ, вы нашли проблему.

Вот удобная команда для запуска локального сервера разработки в Linux:

sudo /usr/lib/python2.6/smtpd.py -n -c DebuggingServer 127.0.0.1:25
1 голос
/ 23 декабря 2009

Ваш код выглядит правильно, поэтому я думаю, что есть проблема с вашими настройками. Вы уверены, что правильно указали EMAIL_HOST и EMAIL_PORT?

Примечание. Его EMAIL_USE_TLS не MAIL_USE_TLS, и вы можете установить свой адрес отправителя (третий параметр в функции send_mail) на None, если хотите, чтобы он принимал ваше значение DEFAULT_FROM_EMAIL.

...