2

Я следовал руководству на этом сайте:

http://oskarhane.com/setup-your-own-mail-hosting-with-linux-postfix-dovecot-and-mysql/

Установить postfix с dovecot и mysql на сервере Linux. Все идет гладко. Единственная проблема заключается в том, что следующий код (взятый из шага 8) относится к более старой версии Dovecot. Мне удалось следить за сообщениями об ошибках достаточно, чтобы обновить то, что я могу, но я получаю сообщение об ошибке при объявлении сокета, и я в тупике. Вот предложенный код:

protocols = imap imaps pop3 pop3s
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/home/vmail/%d/%n/Maildir

ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem

namespace private {
    separator = .
    prefix = INBOX.
    inbox = yes
}

protocol lda {
    log_path = /home/vmail/dovecot-deliver.log
    auth_socket_path = /var/run/dovecot/auth-master
    postmaster_address = postmaster@example.com
    mail_plugins = sieve
    global_script_path = /home/vmail/globalsieverc
}

protocol pop3 {
    pop3_uidl_format = %08Xu%08Xv
}

auth default {
    user = root

    passdb sql {
        args = /etc/dovecot/dovecot-sql.conf
    }

    userdb static {
        args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes
    }

    socket listen {
        master {
            path = /var/run/dovecot/auth-master
            mode = 0600
            user = vmail
        }

        client {
            path = /var/spool/postfix/private/auth
            mode = 0660
            user = postfix
            group = postfix
        }
    }
}

Что мне удалось обновить это:

protocols = imap pop3
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/home/vmail/%d/%n/Maildir

ssl_cert = /path/to/cert
ssl_key = /path/to/cert

namespace {
    type = private
    separator = .  
    prefix = INBOX. 
    inbox = yes
}

protocol lda {
    log_path = /home/vmail/dovecot-deliver.log
    auth_socket_path = /var/run/dovecot/auth-master
    postmaster_address = postmaster@example.com
    mail_plugins = sieve
    sieve = /home/vmail/globalsieverc
}

protocol pop3 {
    pop3_uidl_format = %08Xu%08Xv
}

service auth {
    user=root
}

passdb {
    driver=sql
    args=/etc/dovecot/dovecot-sql.conf
}

userdb {
    driver=static
    args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes
}

socket listen {
    master {
        path = /var/run/dovecot/auth-master
        mode = 0600
        user = vmail
    }

    client {
        path = /var/spool/postfix/private/auth
        mode = 0660
        user = postfix
        group = postfix
    }
}

Ошибка выдается в функцию "прослушивания сокета" ближе к концу. Я ознакомился с документацией по Dovecot, но мне не удалось понять, чем я могу заменить его.

Я получаю ошибку:

doveconf: Warning: Obsolete setting in /etc/dovecot/dovecot.conf:108: sieve has been moved into plugin {} section
doveconf: Fatal: Error in configuration file /etc/dovecot/dovecot.conf line 129: Unknown setting: socket

Кто-нибудь может пролить свет на это?

1 ответ1

2

Я думаю, что на самом деле все получилось. Я нашел эту страницу в документации Dovecot (не очень хорошо выделен, я должен признать! Я полностью пропустил вкладку в верхней части страницы):

http://wiki2.dovecot.org/Upgrading/2.0?highlight=%28unix_listener%29

Я вернулся к оригинальному блоку кода, первоначально задокументированному на сайте:

protocol lda {
    log_path = /home/vmail/dovecot-deliver.log
    auth_socket_path = /var/run/dovecot/auth-master
    postmaster_address = postmaster@example.com
    mail_plugins = sieve
    global_script_path = /home/vmail/globalsieverc
}

Поскольку global_script_path является еще более старой функцией, пришлось изменить ее следующим образом:

protocol lda {
    log_path = /home/vmail/dovecot-deliver.log
    auth_socket_path = /var/run/dovecot/auth-master
    postmaster_address = postmaster@example.com
    mail_plugins = sieve
} 

plugin {
    sieve_global_path = /home/vmail/globalsieverc
}

А затем сделайте преобразование. Это сработало (с некоторыми ошибками, но, похоже, применяет исправления), и перезапуск Dovecot работал без проблем.

Надеюсь, это все!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .