+ Responder ao Tópico



  1. #1

    Padrão [RESOLVIDO] problemas com postfix + mailman

    Olá Pessoal,

    Estou utilizando o postfix com os dados no mysql, os e-mails estão todos funcionando, como percebi e li nos tutoriais e listas, preciso colocar algumas linhas no main.cf para funcionar os alias, então fiz o seguinte...

    alias_maps=hash:/var/lib/mailman/data/aliases,hash:/etc/postfix/aliases
    alias_database=hash:/var/lib/mailman/data/aliases,hash:/etc/postfix/aliases

    virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf,hash:/var/lib/mailman/data/virtual-mailman

    Nesses locais estão os aliases das listas que criei, também coloquei no fim do arquivo main.cf:
    owner_request_special = no
    recipient_delimiter = +


    Um exemplo de meu virtual-mailman:
    [email protected] funcionarios
    [email protected] funcionarios-admin
    [email protected] funcionarios-bounces
    [email protected] funcionarios-confirm
    [email protected] funcionarios-join
    [email protected] funcionarios-leave
    [email protected] funcionarios-owner
    [email protected] funcionarios-request
    [email protected] funcionarios-subscribe
    [email protected] funcionarios-unsubscribe

    Mas os e-mails não chegam e no meu log aparece isso:
    Jul 11 11:40:58 aa postfix/pipe[7207]: A2AC911C073: to=<[email protected]>, relay=maildrop, delay=0.41, delays=0.24/0.01/0/0.16, dsn=5.1.1, status=bounced (user unknown. Command output: Invalid user specified. )

    No mailman configurei o MTA="Postfix" e configurei os virtual domain, que no meu caso é um só.
    POSTFIX_STYLE_VIRTUAL_DOMAINS = ['corp.com.br']
    add_virtualhost('server.corp.com.br', 'corp.com.br')

    A pior parte é que nem aliases normais estão funcionando, a não ser os alias que eu colocava no banco de dados mysql, os "alias_maps" que ficam no arquivo /etc/postfix/aliases não funcionam, eu rodei o postfix com smtpd -v, ele mostra que acha o redirecionamento mas não faz e da erro, olhem só:

    Jul 11 15:03:45 onca postfix/smtpd[10563]: maps_find: local_recipient_maps: hash:/etc/postfix/aliases(0,lock|fold_fix): root = [email protected]
    Jul 11 15:03:45 onca postfix/smtpd[10563]: mail_addr_find: [email protected] -> [email protected]

    Mas depois ainda assim da erro:
    BF5211C073: to=<[email protected]>, relay=maildrop, delay=0.26, delays=0.09/0.02/0/0.15, dsn=5.1.1, status=bounced (user unknown. Command output: Invalid user specified. )

    Meu /etc/postfix/aliases:
    root: [email protected]



    Alguém tem alguma dica diferente dos tutoriais pra me passar? Já li vários e todos são iguais e não consigo encontrar onde estou errado.

    Obrigado
    Última edição por darkwarrior; 15-07-2008 às 16:46.

  2. #2

    Padrão

    Posta aqui, por favor, o resultado do comando:

    Código :
    postconf -d | grep recipient_maps

  3. #3

    Padrão

    postconf -d | grep recipient_maps
    local_recipient_maps = proxy:unixasswd.byname $alias_maps
    proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks
    relay_recipient_maps =

  4. #4

    Padrão

    No final da sua linha:
    Citação Postado originalmente por darkwarrior Ver Post
    local_recipient_maps = proxy:unixasswd.byname $alias_maps
    acrescente o $virtual_alias_maps e veja se resolve o problema.

  5. #5

    Padrão

    Citação Postado originalmente por galahad Ver Post
    No final da sua linha:

    acrescente o $virtual_alias_maps e veja se resolve o problema.
    infelizmente não funcionou.
    O que eu não me conformo, é não funcionar nem os mais simples aliases, que são os do $alias_maps.
    Seria algo de permissão?

  6. #6

    Padrão

    Você pode postar todo o 'postconf -d'? Altere as informações de IP e domínio se quiser.

    Também seria interessante ter o 'ls -la /etc/postfix' e o arquivo '/etc/postfix/mysql_virtual_alias_maps.cf'.

  7. #7

    Padrão

    postconf está no anexo.

    ls:
    -rw-r--r-- 1 root root 87 Jul 11 22:47 aliases
    -rw-r--r-- 1 root root 12288 Jul 11 22:47 aliases.db
    -rw-r--r-- 1 root root 43 Jul 10 17:43 dominios_restritos
    -rw-r--r-- 1 root root 12288 Jul 10 17:55 dominios_restritos.db
    -rw-r--r-- 1 root root 42 Jul 10 18:07 enviar_restritos
    -rw-r--r-- 1 root root 12288 Jul 10 18:07 enviar_restritos.db
    -rw-r--r-- 1 root root 2721 Jul 11 23:34 main.cf
    -rw-r--r-- 1 root root 4824 Jul 11 22:33 master.cf
    -rw-r--r-- 1 root root 322 Jul 10 17:33 mime
    -rw-r----- 1 root postfix 130 Jul 10 09:56 mysql_transport_maps.cf
    -rw-r----- 1 root postfix 125 Jul 10 09:55 mysql_virtual_alias_maps.cf
    -rw-r----- 1 root postfix 129 Jul 10 09:56 mysql_virtual_mailbox_limit_maps.cf
    -rw-r----- 1 root postfix 131 Jul 10 09:55 mysql_virtual_mailbox_maps.cf
    -rwxr-xr-x 1 root root 22197 Jul 10 08:50 post-install
    -rw-r--r-- 1 root root 17588 Jul 10 08:50 postfix-files
    -rwxr-xr-x 1 root root 6647 Jul 10 08:50 postfix-script
    -rw------- 1 root root 141 Jul 10 08:50 saslpass
    -rw-r--r-- 1 root root 44 Jul 10 18:07 usuarios_restritos
    -rw-r--r-- 1 root root 12288 Jul 10 18:07 usuarios_restritos.db

    Arquivo mysql_virtual_alias_maps:
    user = postfix
    password = xxxxxxxxx
    dbname = postfix
    table = alias
    select_field = goto
    where_field = address
    hosts = localhost



    Só pra constar, quando eu adiciono um alias no mysql na tabela alias, funciona certinho, o problema está mesmo em alias que ficam no alias_maps, pois preciso utilizar o mailman e ele precisa desses aliases pra funcionar.
    Arquivos Anexos Arquivos Anexos

  8. #8

    Padrão

    Eu não sei em que lugar da sua configuração você colocou as linhas:

    Código :
    alias_maps=hash:/var/lib/mailman/data/aliases,hash:/etc/postfix/aliases 
    alias_database=hash:/var/lib/mailman/data/aliases,hash:/etc/postfix/aliases

    mas no seu postconf -d elas não estão aparecendo... se você rodar um

    Código :
    postconf -d | grep alias

    vai ter o seguinte resultado:

    Código :
    [COLOR=Red][B]alias_database = hash:/etc/mail/aliases
    alias_maps = hash:/etc/mail/aliases
    [/B][/COLOR]allow_mail_to_commands = alias, forward
    allow_mail_to_files = alias, forward
    expand_owner_alias = no
    local_recipient_maps = proxy:unix:passwd.byname $alias_maps
    newaliases_path = /usr/bin/newaliases
    proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_doma
    unknown_virtual_alias_reject_code = 550
    unknown_virtual_alias_reject_code = 550
    virtual_alias_domains = $virtual_alias_maps
    virtual_alias_expansion_limit = 1000
    virtual_alias_maps = $virtual_maps
    virtual_alias_recursion_limit = 1000

    Você, por acaso, fez um reload do postfix depois que alterou o main.cf? (perguntando só pra ter certeza)

    Procure no seu main.cf pelas linhas do alias_map e alias_database e coloque na frente delas as chamadas para os arquivos do mailman.

    Qualquer coisa, poste o seu main.cf também.

  9. #9

    Padrão

    Opa, valeu por estar ajudando...

    Sim estou rodando o postfix reload.
    No postconf -d não aparece mas no postconf | grep alias aparece:

    postconf | grep alias
    alias_database = hash:/etc/postfix/aliases
    alias_maps = hash:/etc/postfix/aliases, hash:/var/lib/mailman/data/aliases
    allow_mail_to_commands = alias, forward
    allow_mail_to_files = alias, forward
    expand_owner_alias = no
    local_recipient_maps = $alias_maps, $virtual_alias_maps, $virtual_mailbox_maps
    newaliases_path = /usr/bin/newaliases
    proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks
    unknown_virtual_alias_reject_code = 550
    virtual_alias_domains = $virtual_alias_maps
    virtual_alias_expansion_limit = 1000
    virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf, hash:/var/lib/mailman/data/virtual-mailman
    virtual_alias_recursion_limit = 1000


    main.cf
    queue_directory = /var/spool/postfix/
    program_directory = /usr/sbin
    command_directory = /usr/sbin
    daemon_directory = /usr/lib/postfix
    mail_owner = postfix
    default_privs = nobody
    default_transport = smtp
    alias_maps = hash:/etc/postfix/aliases, hash:/var/lib/mailman/data/aliases
    alias_database = hash:/etc/postfix/aliases
    readme_directory = no
    sample_directory = /etc/postfix
    sendmail_path = /usr/sbin/sendmail
    setgid_group = postdrop
    manpage_directory = /usr/local/man
    newaliases_path = /usr/bin/newaliases
    mailq_path = /usr/bin/mailq
    smtpd_banner = $myhostname ESMTP dominio.com.br
    disable_vrfy_command=yes
    myhostname = server.dominio.com.br
    mydomain = dominio.com.br
    myorigin = $mydomain
    mydestination = $mydomain, $transport_maps
    mynetworks = 127.0.0.0/8
    virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf, hash:/var/lib/mailman/data/virtual-mailman
    virtual_mailbox_base = /var/postfix
    virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
    virtual_uid_maps = static:108
    virtual_gid_maps = static:108
    transport_maps = mysql:/etc/postfix/mysql_transport_maps.cf
    local_recipient_maps = $alias_maps, $virtual_alias_maps, $virtual_mailbox_maps
    virtual_transport = $transport_maps


    Tem mais coisas no main.cf, mas acho que é relevante. Por exemplo, tenho mum alias no /etc/postfix/aliases do root para um usuário, e nem esse ele envia. Ou seja, o problema ainda nem chegou no mailman, estou indignado de não conseguir fazer funcionar um simples alias que não esteja no mysql.

  10. #10

    Padrão

    quando você roda o postfix reload, ele mostra alguma coisa no log com relação aos mapas de aliases?

    você chegou a rodar o postmap /var/lib/mailman/data/virtual-mailman e postmap /var/lib/mailman/data/aliases?

  11. #11

    Padrão

    Citação Postado originalmente por galahad Ver Post
    quando você roda o postfix reload, ele mostra alguma coisa no log com relação aos mapas de aliases?

    você chegou a rodar o postmap /var/lib/mailman/data/virtual-mailman e postmap /var/lib/mailman/data/aliases?
    No log do postfix não tem erro nenhum.

    Já havia rodado antes.

    postmap /var/lib/mailman/data/virtual-mailman (Não tem erros)

    postmap /var/lib/mailman/data/aliases
    postmap: warning: /var/lib/mailman/data/aliases, line 10: record is in "key: value" format; is this an alias file?
    postmap: warning: /var/lib/mailman/data/aliases, line 11: record is in "key: value" format; is this an alias file?
    postmap: warning: /var/lib/mailman/data/aliases, line 12: record is in "key: value" format; is this an alias file?
    postmap: warning: /var/lib/mailman/data/aliases, line 13: record is in "key: value" format; is this an alias file?
    postmap: warning: /var/lib/mailman/data/aliases, line 14: record is in "key: value" format; is this an alias file?
    postmap: warning: /var/lib/mailman/data/aliases, line 15: record is in "key: value" format; is this an alias file?
    postmap: warning: /var/lib/mailman/data/aliases, line 16: record is in "key: value" format; is this an alias file?
    postmap: warning: /var/lib/mailman/data/aliases, line 17: record is in "key: value" format; is this an alias file?
    postmap: warning: /var/lib/mailman/data/aliases, line 18: record is in "key: value" format; is this an alias file?
    postmap: warning: /var/lib/mailman/data/aliases, line 19: record is in "key: value" format; is this an alias file?
    postmap: warning: /var/lib/mailman/data/aliases, line 24: record is in "key: value" format; is this an alias file?
    postmap: warning: /var/lib/mailman/data/aliases, line 25: record is in "key: value" format; is this an alias file?
    postmap: warning: /var/lib/mailman/data/aliases, line 26: record is in "key: value" format; is this an alias file?
    postmap: warning: /var/lib/mailman/data/aliases, line 27: record is in "key: value" format; is this an alias file?
    postmap: warning: /var/lib/mailman/data/aliases, line 28: record is in "key: value" format; is this an alias file?
    postmap: warning: /var/lib/mailman/data/aliases, line 29: record is in "key: value" format; is this an alias file?
    postmap: warning: /var/lib/mailman/data/aliases, line 30: record is in "key: value" format; is this an alias file?
    postmap: warning: /var/lib/mailman/data/aliases, line 31: record is in "key: value" format; is this an alias file?
    postmap: warning: /var/lib/mailman/data/aliases, line 32: record is in "key: value" format; is this an alias file?
    postmap: warning: /var/lib/mailman/data/aliases, line 33: record is in "key: value" format; is this an alias file?
    postmap: warning: /var/lib/mailman/data/aliases, line 35: record is in "key: value" format; is this an alias file?


    Se eu rodo postalias no /var/lib/mailman/data/aliases não dá esse erro.
    Última edição por darkwarrior; 12-07-2008 às 08:59.

  12. #12

    Padrão

    Desculpa a demora... vamos ver se esse arquivo está mesmo funcionando... supondo que o seu arquivo /var/lib/mailman/data/aliases tenha uma entrada no formato:

    Código :

    digite o seguinte comando:

    Código :
     postmap -q [email protected] hash:/var/lib/mailman/data/aliases

    Ele tem que te retornar lista1.

  13. #13

    Padrão

    funcionou ambos os abaixo:
    # postmap -q funcionarios hash:/var/lib/mailman/data/aliases
    "|/usr/lib/mailman/mail/mailman post funcionarios"

    # postmap -q [email protected] hash:/var/lib/mailman/data/virtual-mailman
    funcionarios

    # postmap -q root hash:/etc/postfix/aliases
    [email protected]
    Última edição por darkwarrior; 13-07-2008 às 02:10.

  14. #14

    Padrão

    o mais estranho é que nos logs ele diz que acha o alias:

    Jul 13 02:15:40 onca postfix/smtpd[29034]: maps_find: local_recipient_maps: hash:/var/lib/mailman/data/aliases(0,lock|fold_fix): funcionarios = "|/usr/lib/mailman/mail/mailman post funcionarios"
    Jul 13 02:15:40 onca postfix/smtpd[29034]: mail_addr_find: [email protected] -> "|/usr/lib/mailman/mail/mailman post funcionarios"


    Mas mesmo assim, logo depois:
    Jul 13 02:15:40 onca postfix/pipe[29038]: 2B9C411C0A8: to=<[email protected]>, relay=maildrop, delay=0.32, delays=0.14/0.02/0/0.17, dsn=5.1.1, status=bounced (user unknown. Command output: Invalid user specified. )


    O que eu acho mais estranho é o relay=maildrop, não teria que ficar local? algo assim, quando fossem para a lista?

  15. #15

    Padrão

    Consegui resolver:

    no main.cf coloquei:
    transport_maps = hash:/etc/postfix/transport

    e no arquivo transport coloquei uma linha para cada alias do mailman, a exemplo dessa abaixo:
    funcionarios local:

    Daí as chamadas para eles passaram a ser locais e não pelo maildrop, assim rodou certinho

  16. #16

    Padrão

    Muito boa saída!