當Django發送郵件時,根據smtp服務器的不同,它需要幾毫秒到幾秒鐘的時間。所以我面臨的問題是,當Django開始發送電子郵件凍結在那裏。用戶必須等到郵件發送完畢。我想知道我是否可以簡單地返回html頁面,並且在後臺可以發送電子郵件而無需讓用戶等待它。不凍結髮送郵件django
骨架是在頁面正在呈現之前,電子郵件正在發送。所以,我想先渲染頁面,然後在後臺發送電子郵件。
當Django發送郵件時,根據smtp服務器的不同,它需要幾毫秒到幾秒鐘的時間。所以我面臨的問題是,當Django開始發送電子郵件凍結在那裏。用戶必須等到郵件發送完畢。我想知道我是否可以簡單地返回html頁面,並且在後臺可以發送電子郵件而無需讓用戶等待它。不凍結髮送郵件django
骨架是在頁面正在呈現之前,電子郵件正在發送。所以,我想先渲染頁面,然後在後臺發送電子郵件。
我已經做在我的項目是這樣的,使用線程:
class EmailThread(Thread):
def __init__(self, myemail):
self.myemail = myemail
Thread.__init__(self)
def run(self):
self.myemail.send()
class MyEmailMessage(EmailMessage):
def send_async(self, fail_silently=False):
thread = EmailThread(self)
thread.start()
# send email
email = MyEmailMessage(...)
email.send_async()
還有一個名爲django-mailer一個很好的項目。 它將郵件保存在數據庫中,並通過crontab或芹菜異步發送。
我認爲這會工作..讓你知道:)謝謝。 –