簡體   English   中英

如何設置使用 django 發送電子郵件的超時時間?

[英]How to set Timeout for sending email using django?

我正在嘗試設置使用 Django 發送電子郵件的超時時間。 我正在使用 django 1.7.3 和 python v2.7.6。 我的方法是按照此處的 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 有一個設置: EMAIL_TIMEOUT

如果它在文件夾django/core/mail/backends被命名為myemailbackend.py ,那么您的設置將是

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

話雖如此,將您的代碼放入 Django 文件夾是一個壞主意。 最好將它放在一個應用程序中(比如my_app/mymailbackend.py ),這樣它就不會受到 Django 重新安裝和/或升級的影響。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM