Postfix+PHP, mail, mailx não enviam mensagens p/destinatários no próprio domínio

Iniciado por Paulo Bergo, 20 de Maio de 2010, 08:38

tópico anterior - próximo tópico

Paulo Bergo

Olá pessoal...
Depois de muita luta, consegui fazer com que o PHP passasse a enviar emails da minha máquina, com o Ubuntu10.04, para outros destinatários.
No final de muito instala e desinstala, quem acabou funcionando foi o Postfix.
A função mail() do PHP então começou a funcionar...
Agora, ainda resta um problema... não consigo enviar mensagens, ainda, para destinatários do próprio domínio (nem mesmo para mim)...
Se envio uma mensagem pelo prompt, com mail ou mailx, envia 100% para outros destinos mas nada para o próprio domínio.
Se envio pelo PHP, ocorre o mesmo... só dá certo para fora do domínio.
Exemplo, pelo prompt:

bergo@p01140044:~$ mailx bergo@marte.mg.gov.br -s "Teste"
Bom dia!
.
Cc: eu.bergo@ig.com.br
bergo@p01140044:~$

e

bergo@p01140044:~$ mailx eu.bergo@ig.com.br -s "Teste"
Bom dia!
.
Cc: bergo@marte.mg.gov.br
bergo@p01140044:~$

Resultado: email enviado para eu.bergo@ig.com.br em ambos, mas nada enviado para bergo@marte.mg.gov.br

O mesmo ocorre com o PHP...


ini_set('SMTP', 'smtp.marte.mg.gov.br');

$nmsg = 24;

$to      = 'juliocssilva@marte.mg.gov.br' . "\r\n";
$subject = 'O Assunto vai aqui';
$message = 'Hola hermanos ('.$nmsg.')';
$headers = 'From: bergo@marte.mg.gov.br' . "\r\n" .
    'Cc: juliocssilva@marte.mg.gov.br, eu.bergo@yahoo.co.uk, eu.bergo@ig.com.br ' . "\r\n" .
    'Reply-To: bergo@marte.mg.gov.br' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

global $g_error_mail;
if (! mail($to, $subject, $message, $headers)) {
  echo 'a) Houve alguma falha...<br>';
} else {
  echo 'b) Sem problema... ('.$nmsg.')<br>';
}
// $headers);


Resultado: mensagem enviada somenta para os usuários que não estão no domínio, ou seja, os que estão em "marte.mg.gov.br" não recebem a mensagem...

E este exemplo:

ini_set('SMTP', 'smtp.marte.mg.gov.br');

$nmsg = 25;

$to      = 'eu.bergo@ig.com.br' . "\r\n";
$subject = 'O Assunto vai aqui';
$message = 'Hola hermanos ('.$nmsg.')';
$headers = 'From: bergo@marte.mg.gov.br' . "\r\n" .
    'Cc: eu.bergo@yahoo.co.uk, eu.bergo@marte.mg.gov.br ' . "\r\n" .
    'Reply-To: bergo@marte.mg.gov.br' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

global $g_error_mail;
if (! mail($to, $subject, $message, $headers)) {
  echo 'a) Houve alguma falha...<br>';
} else {
  echo 'b) Sem problema... ('.$nmsg.')<br>';
}
// $headers);


Ao exibir os detalhes da mensagem no webmail na própria página do IG, temos:

de          bergo@marte.mg.gov.br
responder a bergo@marte.mg.gov.br
para        eu.bergo@ig.com.br
cc          eu.bergo@yahoo.co.uk,
paulo.bergo@marte.mg.gov.br
data        20 de maio de 2010 07:54
assunto     O Assunto vai aqui
enviado por marte.mg.gov.br

ocultar detalhes 07:54 (4 minutos atrás)

Hola hermanos (25)


A atual configuração do PostFix (mail.cf) é:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
myorigin = marte.mg.gov.br
# é o domínio... o "marte.mg.gov.br" do bergo@marte.mg.gov.br.

#myhostname = p01140044
myhostname = bergo

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

mydomain = marte.mg.gov.br

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

#myhostname = p01140044
#myhostname = bergo

mydestination = bergo@marte.mg.gov.br, marte.mg.gov.br, p01140044, localhost.localdomain, localhost
relayhost = smtp.marte.mg.gov.br
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.254.5
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all


Finalmente, último detalhe:
Meu computador não é o servidor de emails da empresa. Minha máquina tinha um XP+PHP5+IIS com um site de gerenciamento dos projetos da própria seção (streber-pm) e enviava os emails para as demais pessoas da seção numa boa... os problemas surgiram ao migrar tudo para o Ubuntu10.04...
O curioso é que até pela página original, agora dentro de um XP rodando numa VirtualBox dentro do Ubuntu, consegue enviar as mensagens (é o que está me "salvando" até agora!)... pois a necessidade e' realmente a de apenas enviar mensagens para os emails corporativos...
Ah... e para uso pessoal e demais comunicações internas ou externas, uso o próprio Evolution, sem problemas...
Então é isso...
Qualquer dica é bem recebida!
Grato!
Abraços!

zekkerj

Acho que vc devia ter postado na área de servidores, pq teu problema não é de rede, segurança ou internet.

Teu objetivo é enviar emails pro teu domínio (@paulobergo.com.br), ou pra tua máquina (@paulo-desktop.paulobergo.com.br)???

Se o objetivo for enviar emails pro domínio, vc pode configurar o MX do domínio como "relay" de correio.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Paulo Bergo

Grato pela atenção!
Vou postar também na área de servidores...
Quanto ao que pretendo:
Na minha máquina, que é mais uma dentre as centenas na corporação, tenho instalado um gerenciador de projetos (StreberPM), que nada mais é do que um site em PHP+My/SQL. Neste gerenciador, que, no meu caso, supre o horror de ter que usar o MSProject, permite que criemos uma base com projetos ("Instalação de Switches", por exemplo), organizações (fornecedores, clientes, pessoas, funcionários, etc) e tarefas (para uma ou mais pessoa ou organização por exemplo).
Cada vez que se cria uma tarefa, a pessoa (ou pessoas) à qual foi atribuida a tarefa recebe um email de aviso.
A pessoa pode tanto ser um membro da corporação (terá, assim, um email do domínio da corporação - marte.mg.gov.br - como zemaria@marte.mg.gov.br) como ser uma pessoa de fora (carlossantos@officer.com.br - um fornecedor, no caso).
Ora... o meu computador não é o servidor de emails da corporação, isto é, ele é apenas um "cliente", no meu entender... e, quando tinha o XP+IIS+MySQL+PHP5 enviava os emails sem problemas...
Já no Linux, a história ainda é a do primeiro post...
Com o PostFix instalado, o PHP envia as mensagens, mas as pessoas que têm o email na corporação, inclusive eu, não recebem...
Quanto ao MX, não tenho idéia do que seja nem do que fazer para configurá-lo... mas vou pesquisar... de repente é por aí...
Mas lembro... o objetivo é só o de Enviar as mensagens...
Na mesma máquina, gerencio meus emails pelo Evolution, sem problemas (exceto o de que ele não recebe as mensagens enviadas pelo PHP)...
De qualquer forma, também vou postar a mensagem no outro Forum, a não ser que algum moderador possa mover o post para ele (o de Servidores, certo)?
Grato!
Abraços!

zekkerj

CitarVou postar também na área de servidores...
Fala com um moderador que eles movem pra lá, melhor que duplicar o tópico (e arriscar a ser chamado à atenção).
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

clcampos

Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Paulo Bergo

Bem pessoal... resolvida a parada...
Foi preciso tornar "confiável" o meu computador no servidor de emails da corporação.
No final das contas, ficou valendo a instalação do PostFix+Mail+MailX.
Não sei exatamente o que foi configurado no servidor de correio, fazendo com que meu pc, o "p01202448.marte.mg.gov.br" entrasse na lista de "outros servidores de email confiáveis"... e nem sei exatamente qual o SO nem tipo de servidor de email instalado...
Só sei é que depois disso o PHP agora envia as mensagens para os usuários que têm conta no próprio domínio, sem problema...
Assim que souber mais detalhes, posto aqui!
De qualquer forma, grato!
Abraços
e... Resolvido!
:)