web-dev-qa-db-ja.com

MaildirでPostfixadminを使用してcur、new、tmpが作成される場所を誰が教えているのか

どの構成がcur、tmp、newの作成場所を示しているのかを理解しようとしていました。もちろん、私は仮想ユーザーを使用していて、virtualuser/domain/user/Maildir/newvirtualuser/Maildir/curにメールを送受信しています(virtualuser/domain/user/Maildir/tmpは非常に一時的で、メールを受信したりメールを送信したりすることはないと思います)が、新しいユーザーを作成するとそのように作成したPostfixadminを使用したメールボックス

virtualuser/domain/user/tmp
virtualuser/domain/user/new
virtualuser/domain/user/cur

次に、このツリーフォルダを内部に移動する必要があります

 virtualuser/domain/user/Maildir (this is how i would I would like to be created) so I would have:

 virtualuser/domain/user/Maildir/cur
 virtualuser/domain/user/Maildir/tmp
 virtualuser/domain/user/Maildir/new

では、どの構成ファイルにこの設定がありますか? Postfix、Dovecot、またはPostfixadminですか?

さらに、私はこのconfを持っています:

# Postfix:
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
inet_protocols = all
local_recipient_maps = $virtual_mailbox_maps
local_transport = dovecot
mail_owner = postfix
mailbox_command = /usr/libexec/dovecot/dovecot-lda -f "$SENDER" -a "$RECIPIENT"
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mynetworks_style = Host
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
relay_domains = $mydestination
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_banner = $myhostname ESMTP
smtpd_delay_reject = yes
smtpd_helo_required = yes
smtpd_tls_auth_only = yes
smtpd_tls_loglevel = 1
smtpd_use_tls = yes
transport_maps = hash:/etc/postfix/transport
virtual_alias_maps = mysql:/etc/postfix/virtual_alias_maps.cf
virtual_mailbox_base = /home/virtualuser
virtual_mailbox_domains = mysql:/etc/postfix/virtual_mailbox_domains.cf
virtual_mailbox_limit = 512000000
virtual_mailbox_maps = mysql:/etc/postfix/virtual_mailbox_maps.cf
virtual_transport = virtual

 Dovecot:
 mail_home = 
 mail_location = maildir:~/Maildir

また、/ etc/postfix /virtual_mailbox_maps.cfには次のものがあります。

 ...
 table = mailbox
 select_field = maildir
 where_field = username 

データベースから「virtualuser/domain/user」のようなフォルダ文字列を取得します

3
MikZuit

postfixadmin FAQ から取得

1)PostfixAdminがメールボックスを作成しないのはなぜですか?

PostfixAdminは、構成設定を保存するための唯一のWebインターフェースです。 (デフォルトでは!)ディスク上にメールフォルダを作成する機能はありません。通常の設定では、「ようこそ」メールを送信すると、このタスクが実行されます-Courier/Cyrus/etcが実行するように(そして実行する権限があります)

したがって、maildirの場所を支配するpostfixまたはdovecotを結論付けることができます...


上記のpostconf -nの出力に基づくと、明らかにpostfix 仮想エージェント を使用してMaildirへの受信メール配信を実行しています。したがって、virtualエージェントが受信メールの宛先メールボックスを選択する方法を学ぶ必要があります。男8仮想から撮影

メールボックスの場所は、virtual_mailbox_baseおよびvirtual_mailbox_maps構成パラメーターによって制御されます(以下を参照)。 virtual_mailbox_mapsテーブルは、以下のTABLE SEARCH ORDERで説明されているように、受信者アドレスによってインデックスが付けられます。

メールボックスのパス名は次のように構成されます。

    $virtual_mailbox_base/$virtual_mailbox_maps(recipient)

ここで、receiverは完全な受信者アドレスです。

したがって、あなたの場合(/etc/postfix/virtual_mailbox_maps.cf)、このクエリでは$virtual_mailbox_mapsが選択されます

SELECT maildir FROM mailbox WHERE username = $recipient;

$virtual_mailbox_baseとともに、メールボックスの絶対パスを作成します。

さて、問題はmaildirフィールドがどこで生成されたかです。 Postfixadminは、3つのパラメーターを使用してmaildirフィールドを生成します。

  • $ CONF ['domain_path']
  • $ CONF ['domain_in_mailbox']
  • $ CONF ['maildir_name_hook']

これらのパラメータの説明は、postfixadminのconfig.inc.phpで検索できます。


したがって、virtual_mailbox_mapsにappend/ Maildirが必要な場合は、次のことができます。

  1. select_field/etc/postfix/virtual_mailbox_maps.cfを変更します。
  2. Postfixadminでmaildir_name_hook関数を記述します。

オプション1を使用する場合は、特にuserdbパラメーターでdovecotのパラメーターも変更する必要があります。 homeフィールドまたはmail_locationフィールドを探します。

5
masegaloeh

データベースから「virtualuser/domain/user」のようなフォルダ文字列を取得する場合、これらの3つのフォルダはありません。

ただし、データベースから「virtualuser/domain/user /」のようなフォルダ文字列を取得する場合は、これらの3つのフォルダはありません。

0
Alex