From 59bcbdacdc3f4e3e8bf909ba4fdec6e5d55a93b6 Mon Sep 17 00:00:00 2001 From: tonio Date: Fri, 7 Jan 2011 15:12:39 +0100 Subject: [PATCH] see #107 Updated autoreply scripts. --- .../postfix_autoreply/scripts/autoreply | 2 +- .../postfix_autoreply/scripts/autoreply.py | 43 ++++++++++++------- 2 files changed, 29 insertions(+), 16 deletions(-) diff --git a/extensions/postfix_autoreply/scripts/autoreply b/extensions/postfix_autoreply/scripts/autoreply index ec9dd00ac..588e1f6bc 100755 --- a/extensions/postfix_autoreply/scripts/autoreply +++ b/extensions/postfix_autoreply/scripts/autoreply @@ -8,4 +8,4 @@ EGG_CACHE="" PYTHON_EGG_CACHE=$EGG_CACHE PYTHONPATH=$BASEDIR \ DJANGO_SETTINGS_MODULE=modoboa.settings $PYTHON \ - $BASEDIR/modoboa/scripts/postfix_autoreply/autoreply.py $1 $2 + $BASEDIR/modoboa/scripts/postfix_autoreply/autoreply.py $@ diff --git a/extensions/postfix_autoreply/scripts/autoreply.py b/extensions/postfix_autoreply/scripts/autoreply.py index 759766b89..b55f14fe5 100755 --- a/extensions/postfix_autoreply/scripts/autoreply.py +++ b/extensions/postfix_autoreply/scripts/autoreply.py @@ -10,23 +10,11 @@ from modoboa.admin.models import Mailbox from modoboa.extensions.postfix_autoreply import main from modoboa.extensions.postfix_autoreply.models import ARmessage, ARhistoric -if __name__ == "__main__": - if len(sys.argv) != 3: - print "Not enough arguments, aborting." - sys.exit(1) - - sender = sys.argv[1] - mailbox = sys.argv[2] - mbox = Mailbox.objects.get(full_address=mailbox) - try: - armessage = ARmessage.objects.get(mbox=mbox.id, enabled=True) - except ARmessage.DoesNotExist: - sys.exit(0) - +def send_autoreply(sender, mailbox, armessage): if armessage.untildate < datetime.datetime.now(): armessage.enabled = False armessage.save() - sys.exit(0) + return try: lastar = ARhistoric.objects.get(armessage=armessage.id, sender=sender) @@ -53,4 +41,29 @@ if __name__ == "__main__": lastar.last_sent = datetime.datetime.now() lastar.save() - sys.exit(0) + +if __name__ == "__main__": + if len(sys.argv) < 3: + print "Not enough arguments, aborting." + sys.exit(1) + + sender = sys.argv[1] + for fulladdress in sys.argv[2:]: + parts = fulladdress.split('@') + if len(parts) == 2: + address = parts[0] + domain = parts[1] + else: + domain = parts[-1] + address = "@".join(parts[:-1]) + try: + mbox = Mailbox.objects.get(address=address, domain__name=domain) + except Mailbox.DoesNotExist: + print "Unknown recipient %s" % (mbox) + continue + try: + armessage = ARmessage.objects.get(mbox=mbox.id, enabled=True) + except ARmessage.DoesNotExist: + continue + + send_autoreply(sender, mbox, armessage)