Postfix + MySQL + Submission Port + Dovecot + Postfix Admin no CentOS 6.3

Guia atualizado de instalação do Postfix no CentOS 6.3 com as novas configurações do Dovecot para o MySQL.

[ Hits: 44.725 ]

Por: Ronilson Barcellos em 30/11/2012


Configurando o Postfix



Criando o certificado SSL

Para que nossas conexões não fiquem suscetíveis à captura de dados, iremos configurar certificados SSL, gerando o certificado SSL para o Postfix e Dovecot, usando os comandos abaixo:

# genkey --days 3650 mail.seu_dominio.com.br

Obs. 1: O "--days 3650" significa o número de dias em que o certificado é válido (3650/365 dá 10 anos).

Obs. 2: Troque "mail.example.com" para o nome completo do seu servidor, se o seu SMTP se chamar "smtp.servermail.com.br", você irá executar:

# genkey --days 3650 smtp.servermail.com.br

Configurando o Virtual Mail User

O Virtual Mail User será o responsável por criar a Maildir dos usuários, estaremos colocando ele em /home para facilitar a administração, é aqui que será arquivado os e-mails dos usuários. Siga os passos abaixo:

# mkdir /home/vmail
# chmod 770 /home/vmail
# useradd -r -u 101 -g mail -d /home/vmail -s /sbin/nologin -c "Virtual mailbox" vmail
# chown vmail:mail /home/vmail


Com SELinux no estado enforcing, haverá problemas na entrega de e-mails, tente rodar o comando:

# chcon -R -u user_u -r object_r -t user_home_t /home/vmail

Caso não funcione, verifique as sugestões do setroubleshoot, geralmente resolvo os problemas de SELinux consultando ela.

Configurando Postfix Admin

Execute:

# service httpd restart

Primeiro criamos o banco para o Postfix Admin fazer o resto do trabalho. Estou levando em consideração que o MySQL já está instalado e funcionando.

Execute os comandos abaixo.

Entre no prompt do MySQL:

# mysql -u root -p

Criando a base de dados Postfix:

mysql> CREATE DATABASE postfix;

Criando o usuário Postfix (troque sua_senha_aqui por algo melhor):

mysql> CREATE USER postfix@localhost IDENTIFIED BY 'sua_senha_aqui';

Editando as permissões do banco Postfix para o usuário postfix:

mysql> GRANT ALL PRIVILEGES ON postfix . * TO postfix@localhost;

Agora vamos à configuração do Postfix Admin. Não esqueça de colocar sua senha na configuração.

Cole o conteúdo abaixo ou altere o que for necessário no arquivo de configuração:

# cd /var/www/html/postfixadmin
# vim config.inc.php


<?php
/**
  * Contains configuration options that override the default config file
  */

/*********************************************
  *!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  * You have to set $CONF['configured'] = true; before the
  * application will run!
  * Doing this implies you have changed this file as required.
  * i.e. configuring database etc; specifying setup.php password etc.
  */

$CONF['configured'] = true;

// In order to setup Postfixadmin, you MUST specify a hashed password here.
// To create the hash, visit setup.php in a browser and type a password into the field,
// on submission it will be echoed out to you as a hashed value.

$CONF['setup_password'] = 'changeme';
$CONF['postfix_admin_url'] = '';
$CONF['database_type'] = 'mysql';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'sua_senha_aqui';
$CONF['database_name'] = 'postfix';
$CONF['admin_email'] = 'postmaster@seu_dominio_aqui.com.br';
$CONF['encrypt'] = 'md5crypt';
//$CONF['dovecotpw'] = "/usr/sbin/dovecotpw";
$CONF['dovecotpw'] = "/usr/bin/doveadm pw";
$CONF['min_password_length'] = 6;
$CONF['page_size'] = '20';
$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'NO';
$CONF['aliases'] = '50';
$CONF['mailboxes'] = '50';
$CONF['maxquota'] = '100';
$CONF['quota'] = 'YES';
$CONF['quota_multiplier'] = '1024000';
$CONF['transport'] = 'YES';
$CONF['transport_options'] = array (
     'virtual',  // for virtual accounts
     'local',    // for system accounts
     'relay'    // for backup mx
);
$CONF['transport_default'] = 'virtual';
$CONF['vacation'] = 'YES';
$CONF['vacation_domain'] = 'autoreply.seu_dominio_aqui.com.br';
$CONF['vacation_control'] ='YES';
$CONF['vacation_control_admin'] = 'YES';
$CONF['special_alias_control'] = 'YES';
$CONF['user_footer_link'] = "http: //algumacoisa.seu_dominio_aqui.com.br/main";
$CONF['show_footer_text'] = 'YES';
$CONF['footer_text'] = 'Return to seu_dominio_aqui.com.br';
$CONF['footer_link'] = 'http: //seu_dominio_aqui.com.br';
$CONF['create_mailbox_subdirs']=array('Drafts','Spam','Sent','Trash');
$CONF['create_mailbox_subdirs_host']='localhost';
$CONF['create_mailbox_subdirs_prefix']='';
$CONF['used_quotas'] = 'YES';
$CONF['new_quota_table'] = 'YES';
// $CONF['create_mailbox_subdirs_hostoptions']=array('notls');
$CONF['create_mailbox_subdirs_hostoptions']=array('novalidate-cert','norsh');

//
// END OF CONFIG FILE
//

Reinicie o Apache e acesse a URL do Postfix Admin para rodar o "setup.php":

# service httpd restart

E acesse pelo navegador:

http://seudominio.com.br/postfixadmin/setup.php
Ou:
http://127.0.0.1/postfixadmin/setup.php

Se tudo ocorreu bem, copie o Setup Password e crie a entrada:

$CONF['setup_password'] = ' cole o setup password aqui ';

Acima de:
$CONF['postfix_admin_url'] = '';


Crie o administrador do Postfix na página do setup.

* Atenção 1: É obrigatório que o administrador tenha um e-mail válido de qualquer domínio, hotmail.com, gmail.com, etc, etc.

* Atenção 2: Não deixe de configurar o setup_password como descrito acima.

Para criar um domínio no Postfix Admin, é necessário que seu domínio exista em algum DNS. Se for o caso, configure o BIND para o seu domínio e no /etc/resolv.conf coloque nameserver 127.0.0.1.

Um jeito rápido de configurar o BIND, é seguindo os passos abaixo.

Instale o BIND:

# yum install bind bind-libs bind-utils -y

Abra o arquivo de configuração de zonas:

# vim /etc/named.rfc1912.zones

Insira o conteúdo abaixo:

zone "seu_dominio.com.br" IN {
   type  master;
   file  "  seu_dominio.com.br";
   allow-update  {  none;  };
};

E crie o arquivo "seu_dominio.com.br" em /var/named/, não esqueça de alterar o dono:

# chown root:named /var/named/seu_dominio.com.br

Dentro deste arquivo, insira o conteúdo:

$TTL    86400
@   IN  SOA    ns1.seu_dominio.com.br.   root.  seu_dominio.com.br.  (
      04 ;  serial  (d.  adams)
      3H ;  refresh
      15M ;  retry
      1W  ;  expiry
      1D  ) ;  minimum
seu_dominio.com.br.   IN    NS  ns1.  seu_dominio.com.br.
seu_dominio.com.br.   IN    NS  ns2.  seu_dominio.com.br.
seu_dominio.com.br.   IN    MX  10    mail.seu_dominio.com.br.
ns1     IN     A      10.0.0.178
ns2     IN     A      10.0.0.179
mail    IN     A      10.0.0.178

Se tiver um host em Ipv6, é só seguir o exemplo abaixo, repare que são 4 A.

mail   IN    A   AAA    2001:12ff::10

Troque os IPs e o nome do seu domínio. Não irei entrar em detalhes já que podemos encontrar vários tutoriais sobre o BIND na Internet. Faça o login na interface do Postfix Admin e crie um novo domínio e usuário de e-mail. Verifique se as limitações estão OK para você, como o número de aliases, contas e tamanho máximo das contas.

http://127.0.0.1/postfixadmin

Postfix

Finalmente, começaremos a configurar o Postfix!

Irei fazer alguns comentários durante a configuração e vou ser honesto agora, não usei a configuração descrita para o Amavis, como não estaria disponível para estar cuidando do filtro de spam, achei melhor sugerir uma solução paga, pois o fluxo de spam também depende muito da educação dos usuários (eles sempre acabam usando o e-mail corporativo para cadastros em sites), irei usar futuramente o Amavis em outro cliente.

Se quiser copie e cole, ou altere conforme a sua necessidade.

Configurações principais do Postfix:

# vim /etc/postfix/main.cf

# postfix config file

# uncomment for debugging if needed
#soft_bounce=yes

# postfix main

mail_owner = postfix
setgid_group = postdrop
delay_warning_time = 4

# postfix paths
html_directory = no
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
queue_directory = /var/spool/postfix
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.2.2/samples
readme_directory = /usr/share/doc/postfix-2.2.2/README_FILES

# network settings
inet_interfaces = all
mydomain = yourdomain.com
myhostname = host.yourdomain.com
mynetworks = $config_directory/mynetworks
mydestination = $myhostname, localhost.$mydomain, localhost
relay_domains = proxy:mysql:/etc/postfix/mysql_relay_domains_maps.cf

# mail delivery
recipient_delimiter = +

# mappings
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
transport_maps = hash:/etc/postfix/transport
#local_recipient_maps =

# virtual setup
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf,regexp:/etc/postfix/virtual_regexp
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_minimum_uid = 101
virtual_uid_maps = static:101
virtual_gid_maps = static:12 #Número do grupo mail, se for diferente de 12 troque.
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

# debugging
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id sleep 5

# authentication
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

# tls config
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
smtp_tls_session_cache_database = btree:$data_directory/smtp_tls_session_cache
# Change mail.example.com.* to your host name
smtpd_tls_key_file = /etc/pki/tls/private/mail.seudominio.com.br.key
smtpd_tls_cert_file = /etc/pki/tls/certs/ mail.seudominio.com.br.crt
# smtpd_tls_CAfile = /etc/pki/tls/root.crt

# rules restrictions
smtpd_client_restrictions =
smtpd_helo_restrictions =
smtpd_sender_restrictions =
smtpd_recipient_restrictions = permit_sasl_authenticated,
   permit_mynetworks,
   reject_unauth_destination,
   reject_non_fqdn_sender,
   reject_non_fqdn_recipient,
   reject_unknown_recipient_domain
# Se quiser checagem via black list é só descomentar as linhas abaixo
   #,reject_rbl_client  zen.spamhaus.org
   #,reject_rbl_client  bl.spamcop.net
   #,reject_rbl_client  dnsbl.sorbs.net


smtpd_helo_required = yes
unknown_local_recipient_reject_code = 550
disable_vrfy_command = yes
smtpd_data_restrictions = reject_unauth_pipelining

Agora vamos para o "master.cf", caso queira que o seu server ouça na porta 587 (recomendação do CGI.br), siga os meus comentários, é só inserir essas linhas no final do arquivo.

# vim /etc/postfix/master.cf

# Aqui começa a configuração de submission - porta 587 mail message submission
# Essas linhas  já  existiam  no  master.cf  original, é só descomentar
# Caso não exista adicione  elas  descomentadas  abaixo de  smtp  inet  n  -  n  -  -  smtpd
#submission  inet  n  - n  -  - smtpd
#    -o  smtpd_tls_security_level=encrypt
#    -o  smtpd_sasl_auth_enable=yes
#    -o  smtpd_client_restrictions=permit_sasl_authenticated,reject
#    -o  milter_macro_daemon_name=ORIGINATING
#smtps   inet   n  -  n  - - smtpd
#    -o  smtpd_tls_wrappermode=yes
#    -o  smtpd_sasl_auth_enable=yes
#    -o  smtpd_client_restrictions=permit_sasl_authenticated,reject
#    -o  milter_macro_daemon_name=ORIGINATING
#
#  Configuração  Dovecot  LDA  
#  Coloque  do  jeito  que  está  aqui,  ou  não funciona

dovecotunix-nn--pipe
flags=DRhu user=vmail:mail argv=/usr/libexec/dovecot/deliver -d ${recipient}
#
#  Configuração  Vacation  mail
#  Coloque  do  jeito  que  está  aqui,  ou  não funciona

vacation    unix    -  n  n  -  - pipe
   flags=Rq  user=vacation  argv=/var/spool/vacation/vacation.pl  -   ${sender}  --  ${recipient}

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Configurando o Postfix
   3. Arquivos para acesso ao banco MySQL e configuração do vacation (mensagem de férias)
   4. Configurando Dovecot - Teste
   5. Configurando filtro de spam e vírus (opcional)
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Servidor de email + webmail no OpenSuSE 10.2

Servidor de e-mail Postfix + MySQL + Dovecot + Cyrus

Post-la - Gerador de relatórios para o Postfix

Instalando o servidor de mensagens Postfix no Slackware 10.1

Alteração de temas no Zimbra 8.0.7

  
Comentários
[1] Comentário enviado por Daniel Castro em 30/11/2012 - 14:03h

Belo artigo, só faltou um webmail, mas parabéns.

[2] Comentário enviado por danniel-lara em 30/11/2012 - 14:09h

show de Bola o Artigo ,Parabéns
só faltou um webmail heheheh , mas isso é um pequeno detalhe heheh

[3] Comentário enviado por ronilson em 30/11/2012 - 15:09h

Até pensei em colocar no tuto, mas tem tanto artigo sobre webmail que resolvi deixar ao gosto de cada um.

[4] Comentário enviado por danniel-lara em 30/11/2012 - 15:12h


[3] Comentário enviado por ronilson em 30/11/2012 - 15:09h:

Até pensei em colocar no tuto, mas tem tanto artigo sobre webmail que resolvi deixar ao gosto de cada um.


Tranquilo , sem stress , pois ai cada um usa o webmail que quiser

[5] Comentário enviado por ronilson em 30/11/2012 - 15:17h

Pessoal, um amigo executou essa mesma instalação, porém o dele os email não eram recebidos pelos usuários, nos logs peguei o seguinte:
dovecot: dict: Error: Can't open configuration file /etc/dovecot/dovecot-dict-quota.conf: Permission denied
O Dovecot não tinha permissão para ler o arquivo, no caso dele foi apenas dar permissão para isso e o server funcionou perfeitamente.

[6] Comentário enviado por mineiro3555 em 02/12/2012 - 22:31h

Na hora que vou acessar o postfixadmin esta dando o erro 403 de permissao do apache.
O que pode ser? Ja mudei permissao.

[7] Comentário enviado por ronilson em 02/12/2012 - 22:55h

No caso do apache pode ser o configuração do Directory , verifique se na configuração do apache tem algo assim:
<Directory ...
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>

Assim ele está negando para todos, troque o Deny na última linha para Allow.

[8] Comentário enviado por mineiro3555 em 03/12/2012 - 12:28h


[7] Comentário enviado por ronilson em 02/12/2012 - 22:55h:

No caso do apache pode ser o configuração do Directory , verifique se na configuração do apache tem algo assim:
<Directory ...
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>

Assim ele está negando para todos, troque o Deny na última linha para Allow

Ja esta com permissao liberada mas mesmo assim continua dando o erro.

[9] Comentário enviado por ronilson em 03/12/2012 - 13:05h

faz o seguinte, dá um ls -lh /var/www/html/ e coloca o resultado aqui.

[10] Comentário enviado por mineiro3555 em 03/12/2012 - 13:06h

Galera consegui entrar no postfixadmin.Tive que desativar o SElinux.
Soh que agora quando vou entrar no postfixadmin da este erro:
Running software:

PHP version 5.3.3
Apache/2.2.15 (CentOS)

Checking for dependencies:

Magic Quotes: Disabled - OK
Depends on: presence config.inc.php - OK
Checking $CONF['configured'] - OK
Depends on: MySQL 3.23, 4.0 - OK
Depends on: MySQL 4.1 - OK (change the database_type to 'mysqli' in config.inc.php!!)
Depends on: PostgreSQL - OK (change the database_type to 'pgsql' in config.inc.php!!)
Testing database connection - OK - mysql://postfix:xxxxx@localhost/postfix
Depends on: session - OK
Depends on: pcre - OK
Error: Depends on: multibyte string - NOT FOUND
To install multibyte string support, install php5-mbstring
Depends on: IMAP functions - OK

Please fix the errors listed above.


O que pode ser? ja tentei instalar esse php5-mbstring

[11] Comentário enviado por ronilson em 03/12/2012 - 13:22h

Você executou o yum install php-mbstring e ele ainda está pedindo? Sé já estiver instalado reinicia o apache. Executa o comando rpm -qa php-mbstring e vê o que o rpm retorna.

[12] Comentário enviado por mineiro3555 em 03/12/2012 - 13:34h

Agora deu..dei o yum install e foi beleza.

[13] Comentário enviado por mineiro3555 em 03/12/2012 - 14:24h

Agora no postfix quando substituo o arquivo main.cf pelo arquivo do tutorial meu postfix da FALHA na hora de reiniciar.O que pode ser//?

[14] Comentário enviado por ronilson em 03/12/2012 - 15:27h

Criou todos os arquivos para o banco mysql? Faz o seguinte, dá um tail -f /var/log/maillog e reinicia o postfix, pega os erros que o log exibir e cola aqui.

[15] Comentário enviado por ronilson em 03/12/2012 - 16:11h

Pessoal, a formatação da página quebrou a configuração do /etc/postfix/master.cf
Reparem que tem um espaço no começo da linha abaixo de "dovecot unix" e "vacation unix"

## DOVECOT ##
dovecot unix - n n - - pipe
"Espaço aqui"flags=DRhu user=vmail:mail argv=/usr/libexec/dovecot/deliver -d $(recipient)
#VACATION MAIL
vacation unix - n n - - pipe
"Espaço aqui"flags=Rq user=vacation argv=/var/spool/vacation/vacation.pl -f ${sender} -- ${recipient}


[16] Comentário enviado por mineiro3555 em 03/12/2012 - 17:19h

Esse arquivo do postfix main,cf e master.cf eu posso soh tirar o que ta no original e colocar do jeito que ta?
pq to fazendo isso e ta dando o erro.
no meu dovecot tbm quando altero e coloco igual do que esta no tutorial na hora de reiniciar o serviço tambem da erro.

[17] Comentário enviado por ronilson em 03/12/2012 - 17:27h

Dá uma olhada nos logs e posta aqui, pode só adicionar o que está no postfix também, o master.cf é para adicionar e não substituir.
para pegar o que está acontecendo, abra um terminal e digite o comando tail -f /var/log/maillog em outro terminal reinicie o postfix, copie e cole aqui o que for exibido pelo log

[18] Comentário enviado por mineiro3555 em 03/12/2012 - 19:49h

Erro quando reinicio postfix:
Dec 3 18:58:17 localhost postfix[5156]: fatal: /etc/postfix/main.cf, line 58: missing '=' after attribute name: "xxgdb $daemon_directory/$process_name $process_id sleep 5"

[19] Comentário enviado por mineiro3555 em 03/12/2012 - 19:55h

Ja no dovecot substitui o arquivo como no tutorial e na hora de reinicar da isso:
Stopping Dovecot Imap: [FAILED]
Starting Dovecot Imap: doveconf: Fatal: Error in configuration file /etc/dovecot/dovecot.conf line 87: ssl_cert: Can't open file /etc/pki/tls/certs/mail.seu_dominio.com.br.crt: No such file or directory
[FAILED]

[20] Comentário enviado por mineiro3555 em 03/12/2012 - 20:10h

Comentei o linha 58 do postfix e as do ssl do dovecot e os 2 serviço reiniciou blz.

[21] Comentário enviado por mineiro3555 em 03/12/2012 - 20:21h

Agora quando entro no postfixadmin e vou criar a conta de usuario, a conta eh criada mas da a mensagem que Nao foi possivel enviar a mensagem e Conta de email criada, mas nenhum (ou apenas alguns) dos subdiretórios pré-definidos puderam ser criados

[22] Comentário enviado por ronilson em 03/12/2012 - 20:26h

O artigo perdeu a formatação de espaços, deve ser por isso que está apresentando problemas, na linha debugging no main.cf coloque nessa formatação retirando as aspas.

"debugger_command ="
""""""""PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin"
""""""""xxgdb $daemon_directory/$process_name $process_id & sleep 5"

Sobre a linha 58 no dovecot, você tem que gerar os certificados do jeito que mencionei no artigo e trocar o nome dele na linha 58.

[23] Comentário enviado por mineiro3555 em 03/12/2012 - 20:47h

Comentei essas linhas e os serviços tao rodando..soh na hora que crio as contas no postfixadmin que da que a mensagem nao pode ser enviada e que Nao foi possivel enviar a mensagem e Conta de email criada, mas nenhum (ou apenas alguns) dos subdiretórios pré-definidos puderam ser criados

[24] Comentário enviado por ronilson em 03/12/2012 - 21:53h

Estranho, me passa o log de quando vc tenta criar uma conta, me passa seu email também que irei mandar os arquivos de conf (main.cf, master.cf e dovecot mais o filtro)

[25] Comentário enviado por rhind em 09/04/2013 - 12:15h

Ronilson, o comando "genkey", não está sendo encontrado. Preciso instalar algum pacote?

[26] Comentário enviado por ronilson em 09/04/2013 - 13:55h

rhind, se não me engano o genkey está no pacote crypto-utils

[27] Comentário enviado por rhind em 09/04/2013 - 14:23h

Blz, é esse cara mesmo.. Vlw!

[28] Comentário enviado por rhind em 10/04/2013 - 12:25h

Galera, o meu "postfixadmin/setup.php" não rolou. Só me aparece os códigos.

Alguém tem uma solução?

[29] Comentário enviado por ronilson em 10/04/2013 - 12:57h

Como assim? O modulo php está instalado no apache?

[30] Comentário enviado por rhind em 10/04/2013 - 13:21h

Uma pergunta como resposta as vezes nos faz parar pra pensar com mais calma. =D

Estou instalando num CentOS 6.3 e ainda faltavam as deps php-zts, php-mysql, php-imap, php-mbstring.

Vlw Ronilson..

[31] Comentário enviado por will__m em 09/08/2013 - 16:56h

Muito bom seu artigo Ronilson, gostei muito.

Eu estou configurando um novo servidor de e-mails e to fazendo alguns testes aqui.
A diferença é q estou autenticando no AD, ta tudo funcionando, só estou tendo um problema para utilizar o Plugin do Dovecot Sieve.

Quando uso o dovecot-lda, ou deliver, se utilizar ele direto /usr/libexec/dovecot/deliver -d "usuário" envia normal as msgs, mas quando envio pelo postfix, dá este erro no log:
sender non-delivery notification : msgID

From=<>, size=2530. .....

Fatal: destination user parameter (-d user) not given.

A msg é removida da fila e não entregue.

Verifiquei inclusive no seu artigo como deve ficar o master.cf, deixei igual, mas continua dando erro, tentei de várias outras formas, mas não consegui resolver.

O estranho é que só acontece quando envio msg do meu domínio para o meu domínio, quando envio p/ domínios externos, vai normal.

Vc poderia me dar alguma ideia do que poderia estar acontecendo.

Desde já agradeço.

Parabéns de novo pelo Artigo, muito bom msm.

[32] Comentário enviado por ronilson em 09/08/2013 - 19:24h

Will, está utilizando que comando para enviar via postfix? Tentou conectar um cliente de email?
Ele recebe emails de outros dominios?
Coloca o log de envio para seu proprio dominio e para outro dominio.

[33] Comentário enviado por will__m em 12/08/2013 - 10:46h

Bom dia Ronilson,

Desculpe não resp. antes, só consegui abrir aqui hj.

Estou montando por enquanto um servidor somente para testes, antes da instalação de produção, não está publicado no dns externo, vou colocar outro domínio dpois.

Segue logs:

Domínios externo, "ta dando time out pq não ta on, mas tenta mandar":

Aug 12 10:21:39 mail postfix/smtpd[29563]: connect from mail.foobar.br[1.1.2.3]
Aug 12 10:21:39 mail postfix/smtpd[29563]: B3B1712E93: client=mail.foobar.br[1.1.2.3], sasl_method=PLAIN, sasl_username=teste
Aug 12 10:21:39 mail postfix/cleanup[29567]: B3B1712E93: message-id=<5208E163.50002@foobar.br>
Aug 12 10:21:39 mail postfix/qmgr[28640]: B3B1712E93: from=<teste@foobar.br>, size=537, nrcpt=1 (queue active)
Aug 12 10:21:40 mail postfix/smtpd[29563]: disconnect from mail.foobar.br[1.1.2.3]
Aug 12 10:22:20 mail postfix/smtp[29568]: connect to example.com[93.184.216.119]:25: Connection timed out
Aug 12 10:22:20 mail postfix/smtp[29568]: B3B1712E93: to=<tst@example.com>, relay=none, delay=41, delays=0.19/0.03/41/0, dsn=4.4.1, status=deferred (connect to example.com[93.184.216.119]:25: Connection timed out)
Aug 12 10:24:09 mail postfix/smtpd[29616]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled
Aug 12 10:24:09 mail postfix/smtpd[29616]: connect from mail.foobar.br[1.1.2.3]
Aug 12 10:24:10 mail postfix/smtpd[29616]: 262C812EF1: client=mail.foobar.br[1.1.2.3], sasl_method=PLAIN, sasl_username=teste
Aug 12 10:24:10 mail postfix/cleanup[29620]: 262C812EF1: message-id=<5208E1F9.20901@foobar.br>
Aug 12 10:24:10 mail postfix/qmgr[28640]: 262C812EF1: from=<teste@foobar.br>, size=543, nrcpt=1 (queue active)


Domínio local "de teste@foobar.br, p/ joao@foobar.br":

Aug 12 10:24:10 mail postfix/local[29621]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled
Aug 12 10:24:10 mail postfix/local[29621]: 262C812EF1: to=<joao@foobar.br>, relay=local, delay=0.27, delays=0.15/0.03/0/0.09, dsn=5.3.0, status=bounced (command line usage error. Command output: lda(joao): Fatal: destination user parameter (-d user) not given )
Aug 12 10:24:10 mail postfix/cleanup[29620]: 5F6F212EF4: message-id=<20130812132410.5F6F212EF4@mail.foobar.br>
Aug 12 10:24:10 mail postfix/smtpd[29616]: disconnect from mail.foobar.br[1.1.2.3]
Aug 12 10:24:10 mail postfix/qmgr[28640]: 5F6F212EF4: from=<>, size=2401, nrcpt=1 (queue active)
Aug 12 10:24:10 mail postfix/bounce[29623]: 262C812EF1: sender non-delivery notification: 5F6F212EF4
Aug 12 10:24:10 mail postfix/qmgr[28640]: 262C812EF1: removed
Aug 12 10:24:10 mail postfix/local[29621]: 5F6F212EF4: to=<teste@foobar.br>, relay=local, delay=0.21, delays=0.11/0/0/0.09, dsn=5.3.0, status=bounced (command line usage error. Command output: lda(teste): Fatal: destination user parameter (-d user) not given )
Aug 12 10:24:10 mail postfix/qmgr[28640]: 5F6F212EF4: removed

Em ambos utilizo um cliente local, thunderbird, testo também com webmail que ao enviar dá o mesmo problema, na linha de comando quando coloco ./deliver -f user -d destinatário, a msg chega mas sem o remetente. Estranho pq sem o deliver no main.cf, ele envia e recebe normal.

Obrigado + 1 vez pela ajuda.


[34] Comentário enviado por ronilson em 12/08/2013 - 13:25h

Fala Will, blz?
Cara, aparentemente o postfix não encontra os usuários, quando vc tenta enviar por smtp autenticado ele deve retornar erro ao procurar usuário e senha, faz esse teste, cria 2 usuários locais no Linux e tenta enviar e receber por esses usuários, se conseguir o problema é esse mesmo.
Teste de a autenticação no AD está OK. O system-config-authentication pode te dar uma ajuda com isso.
Outra coisa Will, o tuto é em cima de autentica via mysql, no caso é melhor seguir para autenticação em AD direto pelo sistema ou autenticar o Mysql no AD.
Abraço

[35] Comentário enviado por will__m em 12/08/2013 - 17:49h

Opa, blz Ronilson.

Acho que é isso msm, tava lendo no site do postfix: http://www.postfix.org/VIRTUAL_README.html
e tenho q fazer algumas adequações no main.cf p/ poder utilizar o AD.
Vou pelejar um pouco mais aqui e te falo se deu certo.

Obrigado.

Abraço.

[36] Comentário enviado por ronilson em 12/08/2013 - 22:24h

Will, esse tuto geralmente que usa vai utilizar virtual mail host, se esse não for o seu caso abandona a autenticação via mysql e mata metade da configuração com o system-config-authentication.

[37] Comentário enviado por will__m em 13/08/2013 - 11:52h

Bom dia Ronilson,

Funcionou a entrega com o deliver, graças a Deus, nossa já tava quase desistindo msm, o problema é q no meu caso o pessoal quer como pré-requisito de instalação, o uso do AD para autenticar, por isso estou penando para configurar.

Agora estou com outro problema adaptar o plugin do Dovecot, Sieve para poder funcionar com os clientes que utilizam POP3, mas o pior já passou, até terminar os testes devo ter alguns desafios como este até chegar no ponto que a empresa quer, fico grato pela ajuda.

Obrigado mesmo seu artigo está me ajudando muito com algumas configurações importantes, é pq no meu casos estou utilizando várias referências para poder chegar no produto final que a empresa precisa, tanto que a referência do Postifix não bastou para que eu terminasse a configuração de Virtual users, sempre fica faltando algo que acaba sendo complementado por outros que assim como vc ajudam a esclarecer as dúvidas, e divulgar ainda mais os serviços Linux.

Abraço.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts