Problemas ao abrir a porta 465 para o smtp on centos

3

Estou usando o phpMailer para enviar confirmações de compra usando um google apps endereço / smtp. A coisa toda estava funcionando muito bem na caixa de desenvolvimento, mas agora que é ao vivo, parece que a porta que estou usando (465) está bloqueada.

Então eu edito o iptables com:

-A INPUT -p tcp -dport 465 -j ACCEPT  
-A INPUT -p tcp -sport 465 -j ACCEPT

Meu entendimento é que isso permite inbound & conexões de saída em 465 (corrija-me se estiver errado). Depois de reiniciar o iptables:

iptables -nL  
Chain INPUT (policy ACCEPT)
target   prot   opt   source      destination
ACCEPT   tcp    --    0.0.0.0/0   0.0.0.0/0   tcp dpt:465
ACCEPT   tcp    --    0.0.0.0/0   0.0.0.0/0   tcp spt:465

No entanto, ainda recebo "Falha ao conectar-se ao servidor: Permissão negada" como depuração do phpMailer. Pelo que li, isso geralmente indica que a porta está fechada, & evidentemente esse é o caso.

Alguma dica sobre como depurar isso ainda mais? Qualquer ajuda seria muito apreciada.

Caso ajude, aqui está o php:

$mail = new PHPMailer();        
$mail->IsSMTP();
$mail->SMTPDebug = 1; //!DEV
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';      
$mail->Host = 'smtp.gmail.com';
$mail->Port = 465;
$mail->Username = $emailAddress;
$mail->Password = $emailPassword;
$mail->SetFrom($emailAddress, 'PURCHASE ORDER');
$mail->AddAddress($customerEmail);
$mail->AddAddress($salesEmail); 
$mail->Subject = $subject;
$mail->Body = $body;        
$mail->Send() or die('Error: ' . $mail->ErrorInfo);

* Edit: O mailer funciona perfeitamente no servidor de desenvolvimento - algum conselho sobre maneiras de comparar o que pode ser diferente? Mesmo sistema operacional, mesmo php ... Estou perplexo!

    
por kyebosh 22.08.2012 / 09:29

2 respostas

6

Você disse ao seu servidor para aceitar conexões recebidas na porta 465, mas também está dizendo para se conectar a smtp.gmail.com, que é uma saída conexão.

Você precisará abrir as mesmas portas, mas na cadeia OUTPUT, em vez de INPUT:

-A OUTPUT -p tcp --dport 465 -j ACCEPT

Para editar a partir do terminal, o comando seria:

iptables -A OUTPUT -p tcp --dport 465 -j ACCEPT

    
por 22.08.2012 / 09:32
3

Um problema de firewall deve causar as mensagens de erro "A conexão foi redefinida" ou "A conexão expirou". O PHPMailer pode dar a você uma mensagem de erro "Permissão negada" em vez de uma dessas duas, mas seria uma mensagem de erro ruim . (Não seria a primeira vez que vi mensagens de erro ruins.)

Se a mensagem de erro "Falha ao conectar-se ao servidor: Permissão negada" for útil, ela sugere que você tem safe_mode ativado ou você não autorizou a abertura de soquetes no seu php.ini .

Isso também pode ser causado pelo SELinux. Eu não estou familiarizado o suficiente para lhe dizer o que fazer para determinar se este é o caso ou para corrigi-lo.

    
por 22.08.2012 / 10:18