Назад | Перейти на главную страницу

dovecot-lmtp не существует

Я последовал за это руководство по линоду для настройки почтового сервера dovecot и postfix на моем Ubuntu 12.04.2 LTS. Для установки требуется сокет /var/spool/postfix/private/dovecot-lmtp действовать как виртуальный транспорт. Однако в моих настройках этот файл сокета не существует при запуске службы. И у меня есть lmtp линия в /etc/dovecot/conf.d/10-master.conf.

Вот небольшая информация о моем сервере.

Linux prosp 3.8.4-linode50 #1 SMP Mon Mar 25 15:50:29 EDT 2013 i686 i686 i386 GNU/Linux

root@prosp:/var/spool/postfix/private# ls
anvil   bsmtp    dovecot-auth  lmtp      mailman     relay    scache             tlsmgr      verify
auth    defer    error         local     proxymap    retry    scalemail-backend  trace   virtual
bounce  discard  ifmail        maildrop  proxywrite  rewrite  smtp               uucp

root@prosp:/var/spool/postfix/private# aptitude show postfix postfix-mysql dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql
Package: postfix
State: installed
Version: 2.9.6-1~12.04.1

Package: postfix-mysql
State: installed
Version: 2.9.6-1~12.04.1

Package: dovecot-core
State: installed
Version: 1:2.0.19-0ubuntu2

Package: dovecot-imapd
State: installed
Version: 1:2.0.19-0ubuntu2

Package: dovecot-pop3d
State: installed
Version: 1:2.0.19-0ubuntu2

Package: dovecot-lmtpd
State: installed
Version: 1:2.0.19-0ubuntu2

Package: dovecot-mysql
State: installed
Version: 1:2.0.19-0ubuntu2

Раздел из 10-master.conf

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
    user = postfix
    group = postfix
  }
  # Create inet listener only if you can't use the above UNIX socket
  inet_listener lmtp {
    # Avoid making LMTP visible for the entire internet
    address = 127.0.0.1
    port = 2424
  }
}

Мне интересно, почему его не существует. Я попытался переустановить dovecot-lmtpd, но безрезультатно. И поскольку сокета lmtp не существует, мой почтовый сервер может отправлять электронные письма, но не может их получать. В почтовом журнале есть эта строка при получении входящего электронного письма:

May 31 09:05:24 postfix/lmtp[3664]: 2FD80321F4: to=<myaddress@me.com>, relay=none, delay=0.41, delays=0.41/0/0/0, dsn=4.4.1, status=deferred (connect to me.com[private/dovecot-lmtp]: No such file or directory)

Журналы после перезапуска голубятни:

May 31 11:38:10 host dovecot: log: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill)
May 31 11:38:10 host dovecot: master: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill)
May 31 11:38:10 host dovecot: master: Dovecot v2.0.19 starting up (core dumps disabled)
May 31 11:38:11 host postfix/smtpd[5741]: connect from localhost.localdomain[127.0.0.1]
May 31 11:38:11 host dovecot: auth-worker: mysql(127.0.0.1): Connected to database mailserver
May 31 11:38:11 host postfix/smtpd[5741]: 3F8A24DE2A3: client=localhost.localdomain[127.0.0.1], sasl_method=PLAIN, sasl_username=info@mydomain.com
May 31 11:38:11 host postfix/cleanup[5751]: 3F8A24DE2A3: message-id=<20130531113811.3F8A24DE2A3@otherdomain.com>
May 31 11:38:11 host postfix/qmgr[5683]: 3F8A24DE2A3: from=<info@mydomain.com>, size=938, nrcpt=1 (queue active)
May 31 11:38:11 host postfix/smtpd[5741]: disconnect from localhost.localdomain[127.0.0.1]
May 31 11:38:11 host postfix/error[5753]: 3F8A24DE2A3: to=<heshiming@mydomain.com>, relay=none, delay=0.05, delays=0.04/0/0/0, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to otherdomain.com[private/dovecot-lmtp]: No such file or directory)

Есть идеи, почему это произошло?

Похоже, я тоже не могу использовать lmtp в качестве слушателя inet:

May 31 12:22:48 host postfix/lmtp[6798]: connect to localhost[127.0.0.1]:2424: Connection refused
May 31 12:22:48 host postfix/lmtp[6798]: connect to localhost[::1]:2424: Connection refused
May 31 12:22:48 host postfix/lmtp[6799]: connect to localhost[127.0.0.1]:2424: Connection refused
May 31 12:22:48 host postfix/lmtp[6799]: connect to localhost[::1]:2424: Connection refused

Ответы и ответы, которые уже даны, содержат все части решения, вот моя попытка связать эту информацию вместе, борясь с и теперь исправив ту же проблему:

Обзор: Dovecot действует только на service lmtp раздел если lmtp появляется в protocols настройка. Особенно если у вас есть кастом dovecot.conf файл, возможно, вы что-то пропустили.

Деталь (для Debian и расширения Ubuntu): вот основные шаги,

  • apt-get install dovecot-lmtpd
  • Проверь это dovecot.conf/etc/dovecot) включает строку !include_try /usr/share/dovecot/protocols.d/*.protocol: Это где protocols установлен (в частности, lmtp.protocol файл содержит protocols = $protocols lmtp
  • Теперь к service lmtp раздел: Это должно быть в conf.d/10-master.conf но может быть пустым; исходный вопрос имеет настройки в этом разделе (измените соответственно, если вы делаете то же самое):

    service lmtp {
      unix_listener /var/spool/postfix/private/dovecot-lmtp {
        mode = 0600
        user = postfix
        group = postfix
      }
    }
    
  • Убедитесь, что указанное выше conf.d/10-master.conf включен вашим dovecot.conf (обычно с !include conf.d/*.conf)

  • Перезагрузить Dovecot (service dovecot reload), чтобы это изменение конфигурации вступило в силу
  • Дважды проверьте работающую конфигурацию с помощью dovecot -n: Проверь это protocols установлен и включает lmtp; проверьте, что указанное выше service lmtp строфа тоже появляется.
  • Если вы указываете dovecot-lmtp имя сокета, как указано выше, теперь оно должно существовать (это service ltmp stanza сообщает Dovecot создать его при запуске), проверьте с помощью ls -l /var/spool/postfix/private/dovecot-lmtp
  • Теперь это должно хорошо работать с Postfix.

Я обнаружил, что хотя у меня protocols = lmtp pop3 imap в /etc/dovecot/dovecot.conf, это отменяется /etc/dovecot/conf.d/01-mail-stack-delivery.conf который содержит только protocols = pop3 imap sieve. Я изменил этот файл, и протокол lmtp включен.

https://packages.debian.org/sid/dovecot-lmtpd

apt-get install dovecot-lmtpd

Это очень интересная штука. Я сделал все, что прочитал здесь. В моем личном каталоге есть

/var/spool/postfix/private/lmtp

но нет

/var/spool/postfix/private/dovecot-lmtp

так что постфикс скажет мне: