如何使用django设置发送邮件的超时?

kmb7vmvb  于 2023-05-19  发布在  Go
关注(0)|答案(2)|浏览(155)

我正在尝试使用Django设置发送电子邮件的超时时间。我使用的是Django 1.7.3和Python v2.7.6。我的方法是遵循django文档。因此,我所做的是通过在django/core/mail/backends文件夹中创建一个名为www.example.com的文件来创建一个自定义电子邮件后端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没有被编译。我错过了什么?我怎么能设置一个超时发送电子邮件,毕竟?

hujrc8aj

hujrc8aj1#

Django有一个设置:电子邮件超时

68bkxrlz

68bkxrlz2#

如果在文件夹django/core/mail/backends中将其命名为myemailbackend.py,则设置为

EMAIL_BACKEND = 'django.core.mail.backends.myemailbackend.MyEmailBackend'

也就是说,把你的代码放在Django文件夹里是一个坏主意。最好将其放置在应用程序中(例如,my_app/mymailbackend.py),这样它就不会受到Django重新安装和/或升级的影响。

相关问题