Package turbomail :: Module startup
[hide private]
[frames] | no frames]

Source Code for Module turbomail.startup

 1  # encoding: utf-8 
 2   
 3  """TurboGears extension startup and shutdown interface.""" 
 4   
 5  import logging 
 6  log = logging.getLogger("turbomail.startup") 
 7   
 8  import turbogears 
 9   
10  import turbomail 
11  from turbomail.exceptions import * 
12  from turbomail.pool import MailPool 
13   
14  from email import Charset 
15   
16   
17  __all__ = ['start_extension', 'shutdown_extension', 'MailTemplate'] 
18   
19   
20 -def start_extension():
21 """TurboGears extension startup. 22 23 Exits immediately if TurboMail is not enabled and creates a MailPool 24 instance if all is well. 25 """ 26 27 if not turbogears.config.get("mail.on", False): 28 return 29 30 if turbogears.config.get("mail.server", None) is None: 31 raise MailConfigurationException("Outbound server must be specified.") 32 33 log.info("Outbound mail queue manager starting.") 34 35 if turbogears.config.get("mail.encoding", "us-ascii") == "utf-8-qp": 36 Charset.add_charset('utf-8', Charset.SHORTEST, Charset.QP, 'utf-8') 37 turbogears.config.update({"mail.encoding": "utf-8"}) 38 39 turbomail._queue = MailPool( 40 interval=turbogears.config.get("mail.interval", 10), 41 threads=turbogears.config.get("mail.threads", 4), 42 jobs=turbogears.config.get("mail.jobs", 10), 43 timeout=turbogears.config.get("mail.timeout", 60), 44 server=turbogears.config.get("mail.server"), 45 username=turbogears.config.get("mail.username", None), 46 password=turbogears.config.get("mail.password", None), 47 debug=turbogears.config.get("mail.debug", False), 48 tls=turbogears.config.get("mail.tls", None), 49 polling=turbogears.config.get("mail.polling", None), 50 testmode=turbogears.config.get("mail.testmode", False) 51 ) 52 53 if turbomail._queue._polling: 54 turbomail._queue.start()
55 56
57 -def shutdown_extension():
58 """TurboGears extension shutdown. 59 60 Exits immediately if TurboMail is not enabled and shuts down the 61 MailPool object safely. 62 """ 63 64 if not turbogears.config.get("mail.on", False): 65 return 66 67 log.info("Outbound mail queue manager shutting down.") 68 69 if hasattr(turbomail._queue, 'shutdown'): 70 turbomail._queue.shutdown() 71 turbomail._queue = None
72