2008年7月8日火曜日

Djangoとメールサーバ

簡易なSMTPDを作った。
appname/management/commands/smtpd.py
  1. class Command(BaseCommand):  
  2.     def handle(self, *args, **options):  
  3.         daemon_kwargs = {}  
  4.         daemon_kwargs['out_log'] = options.get('outlog''smtp_out.log')  
  5.         daemon_kwargs['err_log'] = options.get('errlog''smtp_err.log')  
  6.         from django.utils.daemonize import become_daemon  
  7.         become_daemon(**daemon_kwargs)  
  8.   
  9.         foo = MySMTPServer((settings.EMAIL_HOST, settings.EMAIL_PORT),  
  10.                 (settings.PARENT_SMTP_HOST, settings.PARENT_SMTP_PORT))  
  11.         try:  
  12.             asyncore.loop()  
  13.         except KeyboardInterrupt:  
  14.             pass  
  15. class MySMTPServer(smtpd.SMTPServer):  
  16.     def process_message(self, peer, mailfrom, rcpttos, data):  
  17.         """ なんか素敵なことをする """  


たった1行でDaemon化できるのが素敵。

0 件のコメント: