mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-08-21 05:45:13 +00:00
42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
![]() |
from django.core.management.base import BaseCommand
|
||
|
import sys
|
||
|
import smtpd
|
||
|
import asyncore
|
||
|
|
||
|
class Command(BaseCommand):
|
||
|
help = "Starts a test mail server for development."
|
||
|
args = '[optional port number or ippaddr:port]'
|
||
|
|
||
|
requires_model_validation = False
|
||
|
|
||
|
def handle(self, addrport='', *args, **options):
|
||
|
if args:
|
||
|
raise CommandError('Usage is runserver %s' % self.args)
|
||
|
if not addrport:
|
||
|
addr = ''
|
||
|
port = '1025'
|
||
|
else:
|
||
|
try:
|
||
|
addr, port = addrport.split(':')
|
||
|
except ValueError:
|
||
|
addr, port = '', addrport
|
||
|
if not addr:
|
||
|
addr = '127.0.0.1'
|
||
|
|
||
|
if not port.isdigit():
|
||
|
raise CommandError("%r is not a valid port number." % port)
|
||
|
else:
|
||
|
port = int(port)
|
||
|
|
||
|
quit_command = (sys.platform == 'win32') and 'CTRL-BREAK' or 'CONTROL-C'
|
||
|
|
||
|
def inner_run():
|
||
|
print "Now accepting mail at %s:%s" % (addr, port)
|
||
|
server = smtpd.DebuggingServer((addr,port), None)
|
||
|
asyncore.loop()
|
||
|
|
||
|
try:
|
||
|
inner_run()
|
||
|
except KeyboardInterrupt:
|
||
|
pass
|