Tickets #8 and #22.

Not finished yet...
This commit is contained in:
tonio
2010-05-07 18:45:50 +02:00
parent 7ad7c1f48e
commit b33fdb45d9
11 changed files with 81 additions and 23 deletions
-8
View File
@@ -1,8 +0,0 @@
#!/bin/sh
BASEDIR=/var/www
export PYTHONPATH=$BASEDIR
export DJANGO_SETTINGS_MODULE=mailng.settings
#export PYTHON_EGG_CACHE=/tmp
$BASEDIR/mailng/scripts/autoreply.py $1 $2
-47
View File
@@ -1,47 +0,0 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import smtplib
from email.mime.text import MIMEText
import datetime
from mailng.lib import parameters
from mailng.admin.models import Mailbox
from mailng.main.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)
try:
lastar = ARhistoric.objects.get(armessage=armessage.id, sender=sender)
parameters.get("postfix_autoreply", "AUTOREPLIES_TIMEOUT")
delta = datetime.timedelta(seconds=timeout)
if lastar.last_sent + delta > datetime.datetime.now():
sys.exit(0)
except ARhistoric.DoesNotExist:
lastar = ARhistoric()
lastar.armessage = armessage
lastar.sender = sender
msg = MIMEText(armessage.content.encode('utf-8'), _charset='utf-8')
msg['Subject'] = armessage.subject
msg['From'] = mailbox
msg['To'] = sender
s = smtplib.SMTP()
s.connect()
s.sendmail(mailbox, sender, msg.as_string())
s.quit()
lastar.last_sent = datetime.datetime.now()
lastar.save()
sys.exit(0)
-26
View File
@@ -1,26 +0,0 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from django.conf import settings
from mailng.admin.models import Domain, Mailbox
if __name__ == "__main__":
if "mailng.extensions.postfix_autoreply" in settings.INSTALLED_APPS:
import mailng.extensions.postfix_autoreply.main as par
from mailng.extensions.postfix_autoreply.models import Transport, Alias
doms = Domain.objects.all()
for dom in doms:
try:
trans = Transport.objects.get(domain="autoreply.%s" % dom.name)
continue
except Transport.DoesNotExist:
par.onCreateDomain(dom=dom)
mboxes = Mailbox.objects.filter(domain=dom.id)
for mb in mboxes:
try:
alias = Alias.objects.get(full_address=mb.full_address)
continue
except Alias.DoesNotExist:
par.onCreateMailbox(mbox=mb)