2013-03-12 116 views
0

我使用django中的EmailMessage發送郵件。這是我的代碼:django郵件發送非常緩慢。

message = " test message " 
    email = EmailMessage('test subject', message, to=['[email protected]']) 
    email.send() 

,但我需要派遣更多的電子郵件,其中包含不同的內容,不同的人,所以,如果我做我做過兩次以上,它走很長的時間來發送郵件。像10秒或更多。有沒有其他解決方案可以更容易,更快速地發送?

在php中它是非常快的。我可以在django中有這個嗎?

非常感謝。

+0

使用send_mail()代替 – catherine 2013-03-12 05:33:53

+0

@catherine,但它仍然很慢。是不是因爲我在本地主機? – doniyor 2013-03-12 05:51:59

+0

我會搜索你的問題 – catherine 2013-03-12 05:55:19

回答

1

擴展到@Thomas Orozco的答案。

Django的飛鴿傳書 - 允許您設置的時間發送郵件,和更多...

https://github.com/dragonfly-science/django-pigeonpost

的Django的cron - 開始在Web應用程序的第一個請求,它會發送電子郵件每個300毫秒(0.4秒),

https://sites.google.com/site/vigeblog/blog/sendmailswithdjango

如果發送郵件再次緩慢(在您看來),你必須檢查你的服務器,重構你的代碼,做測試。

+0

很好,謝謝。我會遵循你的指導 – doniyor 2013-03-12 06:19:46

3

如果您需要發送多個電子郵件並希望加快此過程,則可以使用Django的send_mass_mail函數。文檔清楚地說明了如何使用它;這裏有一個例子形式有:

message1 = ('Subject here', 'Here is the message', '[email protected]', ['[email protected]', '[email protected]']) 
message2 = ('Another Subject', 'Here is another message', '[email protected]', ['[email protected]']) 
send_mass_mail((message1, message2), fail_silently=False) 

這將重用所有電子郵件的單一連接。

+0

但它仍然需要11秒。但我仍然在本地主機,這可以成爲緩慢發送的原因嗎? – doniyor 2013-03-12 05:51:15

+0

@ doniyor你將不得不做一些調試。一個起點可能是檢查郵件服務器上的日誌以及應用程序中的日誌並尋找差異。 – 2013-03-12 05:57:06