Я пытаюсь настроить свой 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.