Postfix não envia email para fora

Iniciado por prchakal, 10 de Março de 2011, 15:28

tópico anterior - próximo tópico

prchakal

Olá,

Eu fiz a instalação do postfix como está descrito no tutorial da canonical.

https://help.ubuntu.com/community/Postfix

Porém quando envio um email ele fica dentro de /home/usuario/Maildir/new/ e não vai para a caixa de destino real, ex: usuario@gmail.com .

O que fazer?

jeflui


prchakal

Olá,

O log está vazio.

Qualquer log mail*

zekkerj

Citação de: prchakal online 10 de Março de 2011, 15:28
Olá,

Eu fiz a instalação do postfix como está descrito no tutorial da canonical.

https://help.ubuntu.com/community/Postfix

Porém quando envio um email ele fica dentro de /home/usuario/Maildir/new/ e não vai para a caixa de destino real, ex: usuario@gmail.com .

O que fazer?
Ahn... ele está fazendo o normal, que é entregar pro usuário local. Se vc quer que repasse automaticamente pra outro domínio, pode criar um arquivo "/home/usuario/.forward", com o email pra onde deve ser encaminhado.
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

prchakal

Olá,

Agora eu já consegui fazer o envio, porém só consigo enviar de dentro da máquina virtual, definindo no arquivo PHP o host do SMTP como localhost.

O problema é que preciso fazer o envio fora da máquina virtual, ou melhor, fora do servidor onde está o postfix.

[ SERVIDOR DB ] <= [ SERVIDOR WEB - SISTEMA DE EMAIL MKT ]  => [ SERVIDOR POSTFIX ]

Segue minha configuração do postfix:

# 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

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/postfix/ssl/smtpd.crt
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.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.

myhostname = mm.meudominio.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = mm.meudominio.com, localhost.localdomain, localhost
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
myorigin = mm.meudominio.com
inet_protocols = all
home_mailbox = Maildir/
mailbox_command =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_application_name = smtpd
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, check_relay_domains
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_tls_auth_only = no
smtp_tls_note_starttls_offer = yes
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
smtp_use_tls = yes
mydomain = meudominio.com


Como permitir esta conexão externa?

O erro que recebo quando envio de fora do servidor é este:

CitarSMTP Error: The following recipients failed: usuario@meudominio.com

Meu arquivo PHP:

require_once('class.phpmailer.php');
$mail = new PHPMailer(true);
$mail->IsSMTP();

try
{
$mail->Host       = "192.168.0.178";
$mail->SMTPAuth   = false;
$mail->Port       = 25;

$mail->Subject = 'Teste de Envio';
$mail->AddAddress('usuario@meudominio.com', 'nome'); 

$mail->Body = '<strong>oi</strong>';
$mail->IsHTML(true);

$mail->Send();
echo "Mensagem enviada</p>\n";
}
catch (phpmailerException $e)
{
echo $e->errorMessage();
}
catch (Exception $e)
{
echo $e->getMessage();
}



Onde está meu "meudominio.com" obviamente é meu dominio oficial, o mesmo acontece para o email de destino, apenas troquei por questões de segurança mesmo.