Quem está dizendo onde cur, new e tmp são criados usando Postfixadmin com Maildir

3

Eu estava tentando perceber qual configuração está contando onde cur, tmp e new são criados. Claro que tenho vindo a utilizar o utilizador virtual e recebo e envio mails para virtualuser/domain/user/Maildir/new e virtualuser/Maildir/cur (acho que virtualuser/domain/user/Maildir/tmp é muito temporário e nunca recebo e-mail) mas quando crio uma nova Mailbox usando o Postfixadmin ele criou como que

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

então eu só preciso mover as pastas desta árvore para dentro

 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

Então, em qual arquivo de configuração tem essa configuração? O Postfix, o Dovecot ou o Postfixadmin?

Além disso, eu tenho este 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

E o /etc/postfix/virtual_mailbox_maps.cf tem:

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

e obter do banco de dados uma string de pasta como "virtualuser / domain / user"

    
por MikRut 07.04.2015 / 13:26

2 respostas

5

Extraído do FAQ do postfixadmin

1) Why isn't PostfixAdmin creating my mailbox?

PostfixAdmin is only a web interface for storing configuration settings. It does not (by default!) have the ability to create mail folders on disk. In a normal setup, sending the 'Welcome' email accomplishes this task - as Courier/Cyrus/etc do it (and have permission to do so)

Então, podemos concluir que o postfix ou dovecot que governam a localização do seu maildir ...

Com base na saída de postconf -n acima, aparentemente você usa o agente virtual para realizar a entrega de emails de entrada para Maildir. Portanto, precisamos aprender como virtual agent escolhe a caixa de correio de destino do email recebido. Retirado do homem 8 virtual

The mailbox location is controlled by the virtual_mailbox_base and virtual_mailbox_maps configuration parameters (see below). The virtual_mailbox_maps table is indexed by the recipient address as described under TABLE SEARCH ORDER below.

The mailbox pathname is constructed as follows:

    $virtual_mailbox_base/$virtual_mailbox_maps(recipient)

where recipient is the full recipient address.

Portanto, no seu caso ( /etc/postfix/virtual_mailbox_maps.cf ), $virtual_mailbox_maps será selecionado com essa consulta

SELECT maildir FROM mailbox WHERE username = $recipient;

Juntamente com $virtual_mailbox_base , eles constroem o caminho absoluto da caixa de correio.

Agora, a questão é onde o campo maildir é gerado? Postfixadmin usa 3 parâmetros para gerar o campo maildir ,

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

Você pode pesquisar a explicação desses parâmetros em config.inc.php de postfixadmin.

Então, se você precisar acrescentar / Maildir em virtual_mailbox_maps , então você pode

  1. Altere select_field de /etc/postfix/virtual_mailbox_maps.cf .
  2. Escreva sua função maildir_name_hook no postfixadmin.

Se você planeja usar a opção 1, também precisa alterar o parâmetro do dovecot, especialmente no parâmetro userdb . Procure o campo home ou o campo mail_location .

    
por 08.04.2015 / 01:41
0

se você obtiver do banco de dados uma sequência de pastas como "virtualuser / domain / user", não deverá ter essas 3 pastas.

Mas se você obter do banco de dados uma string de pasta como "virtualuser / domain / user /" você não deve ter essas 3 pastas.

    
por 04.01.2017 / 23:13