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

imapd-ssl: admin: нет такого файла или каталога

Я пытаюсь настроить свой VPS, чтобы использовать Thunderbird IMAP для управления своей почтой. Сначала я установил postfix и последовал этот руководство по созданию сертификата SSL. Затем я установил sasl2-bin и courier-imap-ssl и нашел это (немецкий) гид для настройки SASL. Несмотря на то, что это немецкий язык, вы все равно можете увидеть, что я сделал, из показанных команд.

После установки Courier Thunderbird наконец принял мою конфигурацию и спросил меня, доверяю ли я сертификату, который я принял. * Однако он не может войти в систему. Глядя на /var/log/mail.info, всякий раз, когда Thunderbird пытается аутентифицироваться, он регистрирует то, что вы можете найти ниже, «admin» - это мое имя пользователя.

Nov 19 22:55:19 vps imapd-ssl: chdir Maildir: No such file or directory
Nov 19 22:55:19 vps imapd-ssl: admin: No such file or directory

Однако я могу убедиться, что аутентификация PAM работает.

admin@vps:~$ sudo testsaslauthd -f /var/run/saslauthd/mux -u admin -p 'mypassword'
0: OK "Success."

Любые подсказки приветствуются.


* Courier создал свой собственный сертификат, поэтому я даже не уверен, действительно ли где-то используется мой созданный вручную сертификат. Он все еще настроен для использования в /etc/postfix/main.cf хотя.

редактировать: Я случайно перепутал Сайруса с Курьером. Я действительно установил курьера. По запросу @masegaloeh вы можете найти конфигурации ниже.

postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
inet_interfaces = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = mail.niklasrosenstein.com niklasrosenstein.com
myhostname = mail.niklasrosenstein.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem
smtpd_tls_auth_only = no
smtpd_tls_cert_file = /etc/ssl/certs/mail.niklasrosenstein.com.crt
smtpd_tls_key_file = /etc/ssl/private/mail.niklasrosenstein.com.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
tls_random_source = dev:/dev/urandom

/etc/courier/authdaemonrc

##VERSION: $Id: authdaemonrc.in,v 1.13 2005/10/05 00:07:32 mrsam Exp $
#
# Copyright 2000-2005 Double Precision, Inc.  See COPYING for
# distribution information.
#
# authdaemonrc created from authdaemonrc.dist by sysconftool
#
# Do not alter lines that begin with ##, they are used when upgrading
# this configuration.
#
# This file configures authdaemond, the resident authentication daemon.
#
# Comments in this file are ignored.  Although this file is intended to
# be sourced as a shell script, authdaemond parses it manually, so
# the acceptable syntax is a bit limited.  Multiline variable contents,
# with the \ continuation character, are not allowed.  Everything must
# fit on one line.  Do not use any additional whitespace for indentation,
# or anything else.

##NAME: authmodulelist:2
#
# The authentication modules that are linked into authdaemond.  The
# default list is installed.  You may selectively disable modules simply
# by removing them from the following list.  The available modules you
# can use are: authuserdb authpam authpgsql authldap authmysql authcustom authpipe

authmodulelist="authpam"

##NAME: authmodulelistorig:3
#
# This setting is used by Courier's webadmin module, and should be left
# alone

authmodulelistorig="authuserdb authpam authpgsql authldap authmysql authcustom authpipe"

##NAME: daemons:0
#
# The number of daemon processes that are started.  authdaemon is typically
# installed where authentication modules are relatively expensive: such
# as authldap, or authmysql, so it's better to have a number of them running.
# PLEASE NOTE:  Some platforms may experience a problem if there's more than
# one daemon.  Specifically, SystemV derived platforms that use TLI with
# socket emulation.  I'm suspicious of TLI's ability to handle multiple
# processes accepting connections on the same filesystem domain socket.
#
# You may need to increase daemons if as your system load increases.  Symptoms
# include sporadic authentication failures.  If you start getting
# authentication failures, increase daemons.  However, the default of 5
# SHOULD be sufficient.  Bumping up daemon count is only a short-term
# solution.  The permanent solution is to add more resources: RAM, faster
# disks, faster CPUs...

daemons=5

##NAME: authdaemonvar:2
#
# authdaemonvar is here, but is not used directly by authdaemond.  It's
# used by various configuration and build scripts, so don't touch it!

authdaemonvar=/var/run/courier/authdaemon

##NAME: DEBUG_LOGIN:0
#
# Dump additional diagnostics to syslog
#
# DEBUG_LOGIN=0   - turn off debugging
# DEBUG_LOGIN=1   - turn on debugging
# DEBUG_LOGIN=2   - turn on debugging + log passwords too
#
# ** YES ** - DEBUG_LOGIN=2 places passwords into syslog.
#
# Note that most information is sent to syslog at level 'debug', so
# you may need to modify your /etc/syslog.conf to be able to see it.

DEBUG_LOGIN=0

##NAME: DEFAULTOPTIONS:0
#
# A comma-separated list of option=value pairs. Each option is applied
# to an account if the account does not have its own specific value for
# that option. So for example, you can set
#   DEFAULTOPTIONS="disablewebmail=1,disableimap=1"
# and then enable webmail and/or imap on individual accounts by setting
# disablewebmail=0 and/or disableimap=0 on the account.

DEFAULTOPTIONS=""

##NAME: LOGGEROPTS:0
#
# courierlogger(1) options, e.g. to set syslog facility
#

LOGGEROPTS=""

##NAME: LDAP_TLS_OPTIONS:0
#
# Options documented in ldap.conf(5) can be set here, prefixed with 'LDAP'.
# Examples:
#
#LDAPTLS_CACERT=/path/to/cacert.pem
#LDAPTLS_REQCERT=demand
#LDAPTLS_CERT=/path/to/clientcert.pem
#LDAPTLS_KEY=/path/to/clientkey.pem

Похоже, у вас есть несоответствие между тем, где postfix хранит электронные письма, и где курьер ищет электронные письма.

  • Глядя на конфигурацию вашего постфикса, становится ясно, что вы позволяете постфиксу сохранять электронную почту в формате по умолчанию и в местах по умолчанию, /var/spool/mail/$user в формате mbox.

  • В курьере вы используете авторизация как модуль аутентификации. Ожидается, что курьер будет искать электронные письма от /home/$user/Maildir в формате maildir.


Простое решение - изменить расположение и формат сообщений электронной почты, хранящихся в postfix. Для этого добавьте этот параметр в main.cf

home_mailbox = Maildir/

Это изменит поведение постфикса для хранения электронной почты в ~ / Maildir / с форматом maildir.