Python/Django: sending emails in the background

后端 未结 3 376
盖世英雄少女心
盖世英雄少女心 2021-02-04 05:04

Imagine a situation in which a user performs an action on a website and admins are notified. Imagine there are 20 admins to notify. By using normal methods for sending emails wi

相关标签:
3条回答
  • 2021-02-04 05:29

    Use celery as a task queue and django-celery-email which is an Django e-mail backend that dispatches e-mail sending to a celery task.

    0 讨论(0)
  • 2021-02-04 05:30

    A thread may be a possible solution. I use threads intensively in my application for haevy tasks.

    # This Python file uses the following encoding: utf-8
    
    #threading
    from threading import Thread
    
    ...
    
    class afegeixThread(Thread):
    
        def __init__ (self,usuari, parameter=None):
            Thread.__init__(self)
            self.parameter = parameter
            ...
    
        def run(self):        
            errors = []
            try:
                 if self.paramenter:
                       ....
            except Exception, e:                
                 ...
    ...
    
    n = afegeixThread( 'p1' )
    n.start()
    
    0 讨论(0)
  • 2021-02-04 05:39

    Another option is django-mailer. It queues up mail in a database table and then you use a cron job to send them.

    https://github.com/pinax/django-mailer

    0 讨论(0)
提交回复
热议问题