HSAdmin Backend Domains, E-Mail, Datenbanken
Michael Hierweck
2012-10-31 46b6502c2f252fcb5cfe94fae00d835cd4061484
Manage Postfix relayrecipients on mailin servers.
1 files modified
22 ■■■■■ changed files
hsarback/src/de/hsadmin/mods/email/EMailAddressProcessorFactory.java 22 ●●●●● patch | view | raw | blame | history
hsarback/src/de/hsadmin/mods/email/EMailAddressProcessorFactory.java
@@ -23,12 +23,16 @@
        CompoundProcessor cp = new CompoundProcessor();
        cp.appendProcessor(new ShellProcessor( "postmap -r -i /etc/postfix-mailin/virtual",
                email.getFullDomain() + " -" ) );
        WaitingTasksProcessor waitingTasksProcessor = new WaitingTasksProcessor(cp);
        Config config = Config.getInstance();
        cp.appendProcessor(new ShellProcessor( "postmap -r -i /etc/postfix-mailin/virtual",
                email.getEMailAddress() + " " + email.getTarget() ) );
        if (emailAddressCount(em, email) < 2) {
            WaitingTasksProcessor waitingTasksProcessor = new WaitingTasksProcessor(cp);
            String domName = email.getDomain().getName();
            Config config = Config.getInstance();
        for (String queueName : config.getProperty("queues.mail").split(",")) {
            waitingTasksProcessor.appendProcessor(queueName, new ShellProcessor( "postmap -r -i /etc/postfix-mailin/relayrecipients",
                    email.getEMailAddress() + " anything" ), "Add to relayrecipients" );
        }
        if (emailAddressCount(em, email) <= 1) {
            String domName = email.getDomain().getName();
            for (String queueName : config.getProperty("queues.mail").split(",")) {
                waitingTasksProcessor.appendProcessor(queueName, createMailinSetupProcessor(domName, pac), queueName + ".hostsharing.net");
            }
@@ -49,14 +53,18 @@
        EMailAddress email = (EMailAddress) entity;
        cp.appendProcessor( 
                new ShellProcessor( "postmap -d '" + email.getEMailAddress() + "' /etc/postfix-mailin/virtual" ) );
        Config config = Config.getInstance();
        WaitingTasksProcessor waitingTasksProcessor = new WaitingTasksProcessor(cp);
        for (String queueName : config.getProperty("queues.mail").split(",")) {
            waitingTasksProcessor.appendProcessor(queueName,
                    new ShellProcessor( "postmap -d '" + email.getEMailAddress() + "' /etc/postfix-mailin/relayrecipients" ), "Remove from relayrecipients" );
        }
        int emailAddressCount = emailAddressCount(em, email);
        if (emailAddressCount == 0) {
            // remove the domain from virtual.db
            String fullDomain = email.getFullDomain();
            cp.appendProcessor( 
                    new ShellProcessor( "postmap -d '" + fullDomain + "' /etc/postfix-mailin/virtual" ) );
            WaitingTasksProcessor waitingTasksProcessor = new WaitingTasksProcessor(cp);
            Config config = Config.getInstance();
                    new ShellProcessor( "postmap -d '" + fullDomain + "' /etc/postfix-mailin/virtual" ) );
            for (String queueName : config.getProperty("queues.mail").split(",")) {
                waitingTasksProcessor.appendProcessor(queueName, createMailinDeleteProcessor(fullDomain), queueName + ".hostsharing.net");
            }