Version 0.6 !!

This commit is contained in:
tonio
2009-06-19 13:54:05 +02:00
parent 968122d50b
commit 55f6c56c9f
19 changed files with 280 additions and 47 deletions
+14
View File
@@ -0,0 +1,14 @@
# -*- coding: utf-8 -*-
import os
import re
def loadextensions():
from django.conf import settings
expr = re.compile("mailng\.extensions\.(.+)")
for app in settings.INSTALLED_APPS:
m = expr.match(app)
if not m:
continue
module = __import__(m.group(1), globals(), locals(), ['main'])
module.main.init()
+42
View File
@@ -0,0 +1,42 @@
# -*- coding: utf-8 -*-
"""
Postfix auto-replies plugin.
This module provides a way to integrate MailNG auto-reply
functionality into Postfix.
"""
from mailng.lib import events
from models import Transport, Alias
def init():
events.register("CreateDomain", onCreateDomain)
events.register("DeleteDomain", onDeleteDomain)
events.register("CreateMailbox", onCreateMailbox)
events.register("DeleteMailbox", onDeleteMailbox)
def onCreateDomain(**kwargs):
dom = kwargs["dom"]
transport = Transport()
transport.domain = "autoreply.%s" % dom.name
transport.method = "autoreply:"
transport.save()
def onDeleteDomain(**kwargs):
dom = kwargs["dom"]
trans = Transport.objects.get(domain="autoreply.%s" % dom.name)
trabs.delete()
def onCreateMailbox(**kwargs):
mbox = kwargs["mbox"]
alias = Alias()
alias.full_address = mbox.full_address
alias.autoreply_address = \
"%s@autoreply.%s" % (mbox.full_address, mbox.domain.name)
alias.save()
def onDeleteMailbox(**kwargs):
mbox = kwargs["mbox"]
alias = Alias.objects.get(full_address=mbox.full_address)
alias.delete()
+10
View File
@@ -0,0 +1,10 @@
from django.db import models
from mailng.admin.models import Domain, Mailbox
class Transport(models.Model):
domain = models.CharField(max_length=300)
method = models.CharField(max_length=255)
class Alias(models.Model):
full_address = models.CharField(max_length=255)
autoreply_address = models.CharField(max_length=255)