如何设置超时以使用 django 发送电子邮件?
How to set Timeout for sending email using django?
我正在尝试使用 Django 设置发送电子邮件的超时时间。我正在使用 django 1.7.3 和 python v2.7.6。我的方法是遵循 here 中的 django 文档。所以我所做的是通过在 django/core/mail/backends 文件夹上创建一个名为 myemailbackend.py 的文件来创建自定义电子邮件后端,代码如下:
from django.core.mail.backends import smtp
class MyEmailBackend(smtp.EmailBackend):
def __init__(self, *args, **kwargs):
kwargs.setdefault('timeout', 3) #this is 3 secs, i believe.
super(MyEmailBackend, self).__init__(*args, **kwargs)
之后,在我的 settings.py 中,我设置了我的 EMAIL_BACKEND:
# Email setup
EMAIL_BACKEND = 'django.core.mail.backends.base.myemailbackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'xxxx@gmail.com'
EMAIL_HOST_PASSWORD = 'xxx'
EMAIL_PORT = 587
# EMAIL_TIMEOUT = 3 # 3 sec, this would be great but i notice that this is not possible since that backend stmp.py doesn't expect to get "EMAIL_TIMEOUT" var.
在我运行服务器之后,我注意到这似乎不起作用,我注意到 myemailbackend.py 没有被编译。
我错过了什么?毕竟,我如何设置发送电子邮件的超时时间?
如果它在文件夹 django/core/mail/backends
中被命名为 myemailbackend.py
,那么您的设置将是
EMAIL_BACKEND = 'django.core.mail.backends.myemailbackend.MyEmailBackend'
话虽如此,将代码放入 Django 文件夹并不是一个好主意。最好将它放在应用程序中(比如 my_app/mymailbackend.py
),这样它就不会受到 Django 重新安装 and/or 升级的影响。
Django 有一个设置:EMAIL_TIMEOUT
我正在尝试使用 Django 设置发送电子邮件的超时时间。我正在使用 django 1.7.3 和 python v2.7.6。我的方法是遵循 here 中的 django 文档。所以我所做的是通过在 django/core/mail/backends 文件夹上创建一个名为 myemailbackend.py 的文件来创建自定义电子邮件后端,代码如下:
from django.core.mail.backends import smtp
class MyEmailBackend(smtp.EmailBackend):
def __init__(self, *args, **kwargs):
kwargs.setdefault('timeout', 3) #this is 3 secs, i believe.
super(MyEmailBackend, self).__init__(*args, **kwargs)
之后,在我的 settings.py 中,我设置了我的 EMAIL_BACKEND:
# Email setup
EMAIL_BACKEND = 'django.core.mail.backends.base.myemailbackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'xxxx@gmail.com'
EMAIL_HOST_PASSWORD = 'xxx'
EMAIL_PORT = 587
# EMAIL_TIMEOUT = 3 # 3 sec, this would be great but i notice that this is not possible since that backend stmp.py doesn't expect to get "EMAIL_TIMEOUT" var.
在我运行服务器之后,我注意到这似乎不起作用,我注意到 myemailbackend.py 没有被编译。 我错过了什么?毕竟,我如何设置发送电子邮件的超时时间?
如果它在文件夹 django/core/mail/backends
中被命名为 myemailbackend.py
,那么您的设置将是
EMAIL_BACKEND = 'django.core.mail.backends.myemailbackend.MyEmailBackend'
话虽如此,将代码放入 Django 文件夹并不是一个好主意。最好将它放在应用程序中(比如 my_app/mymailbackend.py
),这样它就不会受到 Django 重新安装 and/or 升级的影响。
Django 有一个设置:EMAIL_TIMEOUT