2010-12-15 4 views
11

を使用して非同期電子メールを送信するためにどのようにこれは私のコードです。私に何ができる?ジャンゴ

答えて

18

今は大丈夫です。長期的には

class EmailThread(threading.Thread): 
    def __init__(self, subject, html_content, recipient_list): 
     self.subject = subject 
     self.recipient_list = recipient_list 
     self.html_content = html_content 
     threading.Thread.__init__(self) 

    def run (self): 
     msg = EmailMessage(self.subject, self.html_content, EMAIL_HOST_USER, self.recipient_list) 
     msg.content_subtype = "html" 
     msg.send() 

def send_html_mail(subject, html_content, recipient_list): 
    EmailThread(subject, html_content, recipient_list).start() 
11

、それが非同期電子メールの送信/管理要件のすべての種類を処理するために、このようdjango-mailerとして、サードパーティ製のDjangoアプリケーションを使用するには良い決断になるかもしれません。

+0

は今 – tobych

+0

をhttp://github.com/jtauber/django-mailer/に移動し – Jesse

+1

注意をhttps://github.com/pinax/django-mailerために再び移動します:python 3では動作しません。 – Will

1

セロリなどをベースにしたより複雑なソリューションをチェックしたところ、django-post_office(https://github.com/ui/django-post_office)が見つかりました。非常に簡単なデータベース+ cronジョブプラグインで、起動して実行するのに5分かかりました。私のローカル開発マシンとHerokuの両方で完全に動作します。