Connection timeout issue sending email in Django
Asked Answered
K

2

4

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:

Kimkimball answered 23/12, 2009 at 2:52 Comment(0)
C
15

'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
Corody answered 18/1, 2010 at 23:22 Comment(3)
If its a slow 220 ready response, django send_email will also fail with a SMTP timeout error. One reason why it could be slow is that the mail server is performing an IDENT lookup on the connecting client and doesn't give the 220 ready response till its done. Haven't found a way around this yet, a max timeout flag would be nice if you wait a longer time for this to complete.Hydrogeology
It is showing Trying 208.xxx.xxx.xxx... nothing else. Is it a connection issue? Everything is working with same settings in my local machineUnreasoning
Since macOS 10.13, telnet is no longer included. Use nc instead, i.e. something like nc smtp.xxxx.com.kh 25.Ridglee
C
1

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.

Clemen answered 23/12, 2009 at 3:16 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.