mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-26 06:08:38 +01:00
Version 0.6 !!
This commit is contained in:
@@ -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()
|
||||
@@ -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()
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user