5

我从

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 框架发送邮件

参考我读过:

4

2 回答 2

14

“连接超时”意味着 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
于 2010-01-18T23:22:04.537 回答
1

您的代码看起来正确,所以我认为您的设置有问题。你确定正确地指定了EMAIL_HOST和吗?EMAIL_PORT

注意:它EMAIL_USE_TLS不是MAIL_USE_TLS,您可以将您的发件人地址(send_mail 函数中的第三个参数)设置为None如果您希望它获取您的DEFAULT_FROM_EMAIL值。

于 2009-12-23T03:16:41.793 回答