Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Connection timeout issue sending email in Django

I read from

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

and follow the steps: => And change my setting.py

SITE_HOST = '127.0.0.1:8000'
DEFAULT_FROM_EMAIL = 'KSO Publisher <[email protected]>'
EMAIL_HOST = 'smtp.xxxx.com.kh'
EMAIL_PORT = '25'
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = 'mypassword'
EMAIL_USE_TLS = False

after I go to the command line

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.','[email protected]',['[email protected]'])

I got the error message.

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')

Anybody know what exactly the problem.And how Can I sent mail using django framworks

Reference I have read:

  • http://docs.djangoproject.com/en/dev/topics/email/#the-emailmessage-and-smtpconnection-classes
  • http://ltslashgt.com/2007/07/02/gmail-and-django/
  • http://bakingnoodles.com/2009/03/command-line-email-with-django-and-gmail/comment-page-1/#comment-432
like image 501
kn3l Avatar asked Dec 23 '09 02:12

kn3l


2 Answers

'Connection timed out' means Django couldn't connect to your email server. Type this on a command line:

telnet smtp.xxxx.com.kh 25

You should get a response from the email server, something like:

220 rufus Python SMTP proxy version 0.2

If you don't get a response,you have found the problem.

Here's a handy command to run a local development server, on Linux:

sudo /usr/lib/python2.6/smtpd.py -n -c DebuggingServer 127.0.0.1:25
like image 150
Graham King Avatar answered Sep 19 '22 02:09

Graham King


You code looks correct, so I think there is a problem with your settings. Are you positive that specified the EMAIL_HOST and EMAIL_PORT correctly?

Note: Its EMAIL_USE_TLS not MAIL_USE_TLS and you can set your from address (3rd parameter in send_mail function) to None if you want it to take your DEFAULT_FROM_EMAIL value.

like image 41
buckley Avatar answered Sep 18 '22 02:09

buckley