2009-09-03 64 views
1

当我试图通过'smtp.gmail.com'发送时,我总是收到此间歇性错误。Python:电子邮件发送失败的SSL读取

Traceback (most recent call last): 

    File "/var/home/ptarjan/django/mysite/django/core/handlers/base.py", line 92, in get_response 
    response = callback(request, *callback_args, **callback_kwargs) 

    File "/var/home/ptarjan/django/mysite/registration/views.py", line 137, in register 
    new_user = form.save() 

    File "/var/home/ptarjan/django/mysite/registration/forms.py", line 79, in save 
    email=self.cleaned_data['email']) 

    File "/var/home/ptarjan/django/mysite/django/db/transaction.py", line 240, in _commit_on_success 
    res = func(*args, **kw) 

    File "/var/home/ptarjan/django/mysite/registration/models.py", line 120, in create_inactive_user 
    registration_profile.send_registration_mail() 

    File "/var/home/ptarjan/django/mysite/registration/models.py", line 259, in send_registration_mail 
    send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [self.user.email]) 

    File "/var/home/ptarjan/django/mysite/django/core/mail.py", line 390, in send_mail 
    connection=connection).send() 

    File "/var/home/ptarjan/django/mysite/django/core/mail.py", line 266, in send 
    return self.get_connection(fail_silently).send_messages([self]) 

    File "/var/home/ptarjan/django/mysite/django/core/mail.py", line 172, in send_messages 
    sent = self._send(message) 

    File "/var/home/ptarjan/django/mysite/django/core/mail.py", line 186, in _send 
    email_message.message().as_string()) 

    File "/usr/lib/python2.5/smtplib.py", line 704, in sendmail 
    (code,resp) = self.data(msg) 

    File "/usr/lib/python2.5/smtplib.py", line 484, in data 
    (code,repl)=self.getreply() 

    File "/usr/lib/python2.5/smtplib.py", line 352, in getreply 
    line = self.file.readline() 

    File "/usr/lib/python2.5/smtplib.py", line 160, in readline 
    chr = self.sslobj.read(1) 

sslerror: The read operation timed out 

我正在使用Django-registarion应用程序运行Django 1.1。这些在我的settings.py

EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_HOST_USER = "**SECRET**" 
EMAIL_HOST_PASSWORD = "**SECRET**" 
EMAIL_PORT = 587 
EMAIL_USE_TLS = True 
+0

您正在打印的追踪不是很有用,特别是它缺少引发的确切异常。 – tonfa 2009-09-04 00:12:30

+0

好点,我剪得太早 – 2009-09-04 00:35:41

回答

3

本书虽然是“我不知道为什么,我一直救援人员到场这个,当你在一个特定的顺序排序设置变量,它的工作原理:

  • EMAIL_HOST
  • EMAIL_PORT
  • EMAIL_HOST_USER
  • EMAIL_HOST_PASSWORD
  • EMAIL_USE_TLS
+2

这对我来说很有用。下来选民可以照顾解释 – 2009-09-04 11:33:05

+0

好,我改变了顺序,并没有问题。可能是心身,但我会回来,如果它再次不接受:) – 2009-09-06 23:55:20

+0

保罗,它的作品!我就知道!但是,现在,这里的专家应该解释为什么以及如何! – 2009-09-07 06:29:51

0

看起来像Gmail可能只是偶尔缓慢的回应,所以你的操作超时。也许你可以尝试/除了捕捉这些问题并重试几次(可能在尝试之间等待一段时间)。顺便说一句,这个任务看起来非常适合专用或合用的线程,它封装了整个“发送重试邮件”操作。

相关问题