私はこれに数え切れないほどの時間を費やしてきましたが、IDが助けを求めて「インターネット」に来ると考えました。
Postfix + dovecot + mysqlの新しいインストールをインストールしました。
今、マップされたアカウント「[email protected]」からメールを受信できますが、何らかの理由ですべてのメッセージが/ var/mail/seanに挿入されます
予想される場所:/var/vmail/domain.com/sean
これを機能させるために使用されるコードの重要な部分をリストします。
接尾辞master.cf
dovecot unix - n n - - pipe
flags=DRhu user=vmail:mail argv=/usr/lib/dovecot/deliver -d ${recipient}
後置main.cf
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
Dovecot 10-mail.conf
mail_location = maildir:/var/vmail/%d/%n
mail_uid = vmail
mail_gid = mail
first_valid_uid = 150
last_valid_uid = 150
Dovecot 10-auth.conf
disable_plaintext_auth = yes
!include auth-sql.conf.ext
Dovecot auth-sql.conf.ext
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
Dovecot dovecot-sql.conf.ext
driver = mysql
connect = Host=localhost dbname=mail user=mail password=P@ssw0rd
default_pass_scheme = MD5-CRYPT
password_query = \
SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, \
'maildir:/var/vmail/%d/%n' as userdb_mail, 150 as userdb_uid, 8 as userdb_gid \
FROM mailbox WHERE username = '%u' AND active = '1'
user_query = \
SELECT '/var/vmail/%d/%n' as home, 'maildir:/var/vmail/%d/%n' as mail, \
150 AS uid, 8 AS gid, concat('dirsize:storage=', quota) AS quota \
FROM mailbox WHERE username = '%u' AND active = '1'
そして、それは私がやろうとしていることの設定部分のためにほとんどそれをします。
私が間違っていることのアイデアはありますか? {明日までにハゲになるはずです:)}
2つのカテゴリのユーザーを混同していると思います。 SystemUsersとVirtualUSersがあります。
Systemuserを使用する場合は、次の行を追加するだけです。
mailbox_command = /usr/local/libexec/dovecot/deliver #または mailbox_command = /usr/libexec/dovecot/deliver #または mailbox_command = /usr/lib/dovecot/deliver #またはシステムのどこにインストールされていても。
Virtualusersを使用しようとしている場合は、postfixでもそれらを構成する必要があります。
このようなもの:obs:mysql confsを使用しようとしますが、それを正しくするかどうかはわかりません。
/etc/postfix/virtual-address-mysql.cf
コンテンツ:
user = mail password = P @ ssw0rd dbname = mail hosts = localhost query =メールボックスからユーザー名を選択します'1'およびユーザー名= '%s';
見てください、私はあなたのクエリについて何かを見逃しているかもしれません。
これで、postfixは仮想ユーザーを知ることができます
今すぐマッピングする必要があります。
proxy_read_maps = $ local_recipient_maps $ mydestination $ virtual_alias_maps $ virtual_mailbox_maps $ virtual_mailbox_domains virtual_mailbox_maps = proxy:mysql:/etc/postfix/virtual-address-mysql.cf [.________
システムユーザーよりもデータベースを管理する方が仮想ユーザーになります。
仮想ドメインと仮想エイリアスもできます
同じロジックで、confは次のようになります。
virtual_mailbox_domains = proxy:mysql:/etc/postfix/vdomains.cf virtual_alias_maps = proxy:mysql:/etc/postfix/virtual-alias.cf
そのことを推測します。さらにヘルプが必要な場合は、あなたが見つけることができると思います
私もこの問題を抱えていたので、少し時間をかけて掘り下げました。誰かがそれを持っているなら、チェックする価値があります/var/log/mail.log
次のようなエラーの場合:
postfix/trivial-rewrite[2149]: warning: do not list domain localdomain.co.uk in BOTH mydestination and virtual_mailbox_domains
削除したところlocaldomain.co.uk
から mydestination = line
以内 /etc/postfix/main.cf
ファイル。これで問題が修正されたようです。
「virtual_mailbox_map.cnf」ファイルの問題(名前が異なる場合があります)
hosts = 127.0.0.1
user = postfix
password = password
dbname = postfix
query = SELECT CONCAT(domain, '/', maildir) FROM mailbox WHERE username='%s' AND active = 1
私が見たすべてのマニュアルで彼らがこのようなものを使用しているため、クエリの修正
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1
同じ問題があった。 1週間の夜の後、/ home/username/mail/.imap/INBOXの下にINBOXフォルダーを作成する必要がある場合があります。
それは私のためのトリックをしました。
システムはroundcube/dovecot/postfix/mysql/centos 6.4です。
ポール。