django 发邮件 报错 连接数太多???

渔樵耕读 发布于 2013/08/14 23:23
阅读 660
收藏 1

python 2.7

django 1.5

views.py 代码:


from django.http import HttpResponse
from django.shortcuts import render_to_response
from django.core.mail import send_mail

def contact(request):
        errors = []
        if request.method == 'POST':
                if not request.POST.get('subject',''):
                        errors.append('Enter a subject')
                if not request.POST.get('message',''):
                        errors.append('Enter a message')
                if not request.POST.get('email') or '@' not in request.POST['email']:
                        errors.append('Enter a valid e-mail address.')

                if not errors:
                        send_mail(
                            request.POST['subject'],
                            request.POST['message'],
                            'xxxx@sina.com',
                            [request.POST.get('email','xxxx@qq.com')],
                         )      
                        return HttpResponseRedirect('/contact/thanks/')
        return render_to_response('contact_form.html',{'error':errors})

def thanks(request):
        return render_to_response('thanks.html')
setting.py 配置:


#email config
EMAIL_HOST='smtp.sina.com.cn'
EMAIL_PORT = '25'
EMAIL_HOST_USER = 'xxxx@sina.com'
EMAIL_HOST_PASSWORD = xxx'
EMAIL_USE_TLS =True
SERVER_EMAIL = EMAIL_HOST_USER
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER


html 模板:



<html>
 <head>
  <title> Contact us </title>
 </head>

 <body>
	{% if error %}
		<ul>
			{% for error in errors %}
			<li>{{ error }}</li>
			{% endfor %}
		</ul>
	{% endif %}
	<form action = "/contact/" method = "post">
	{% csrf_token %}
		<p>Subject:<input type = "text" name = "subject"/></p>
		<p> Your e-mail(optional):<input type = "text" name = "email"/></p>
		<p> Message:<textarea name = "message" rows = "10" cols = "50"></textarea></p>
		<input  type = "submit" value = "Submit">
	</form>

 </body>
</html>

报错信息:

SMTPConnectError at /contact/

(421, '#4.4.5 Too many connections to this host.')
是我邮箱配置的不对? 还是我没设置什么?

觉得代码没问题啊。


加载中
0
首席安全砖家
首席安全砖家
把 页面完整的错误贴出来看看,  最近我也在玩django , 你在写什么项目? blog ?
渔樵耕读
渔樵耕读
我觉得这个信息就足够了吧。 刚接触django 找不到错误原因。 没写啥~只是跟着 the django book 写列子 学习呢~
0
首席安全砖家
渔樵耕读
渔樵耕读
这两个帖子 说的都是django 跟mysql 连接的问题~
渔樵耕读
渔樵耕读
我怀疑是setting.py中 EAMIL 配置的问题。 或者我选择的新浪邮箱服务器 不让这种形式的 自动发邮件~
0
首席安全砖家
首席安全砖家

The “too many connections from your host” error is the text of the error message that is coming back from the SMTP server. It indicates that the SMTP server has a limit on how many simultaneous open connections it will accept from a single IP address. There must have been other threads or processes (or applications) with open connections to the same SMTP server that caused you to exceed the limit.


在老外的blog 找到解释

首席安全砖家
首席安全砖家
回复 @渔樵耕读 : 试试
渔樵耕读
渔樵耕读
谢谢! 你这段信息很有用啊! 难道是因为我昨晚开着新浪邮箱的同时用django发邮件 就会报错?
0
渔樵耕读
渔樵耕读

@晓骏 

我关闭了 新浪的邮箱。然后仍然报错~

我把EMAIL_USE_TLS =True 这段注释了 

就可以发邮件了~ 

不知道为什么。。。

0
shewa
shewa
EMAIL_BACKEND='django.core.mail.backends.smtp.EmailBackend'
返回顶部
顶部