Fórum Ubuntu Linux - PT

Suporte Técnico => Servidores => Tópico iniciado por: Piucco em 20 de Setembro de 2014, 04:50

Título: Ubuntu bloqueando de alguma maneira acesso a SMTP externo utilizando PHPMailer
Enviado por: Piucco em 20 de Setembro de 2014, 04:50
Olá, eu tenho um ambiente Ubuntu LAMP e estou tendo dificuldades para enviar emails utilizando o PHPMailer (biblioteca para envio de emails). No meu caso estou utilizando o PHPMailer para utilizar o servidor SMTP do GMail para o envio do email, então não é necessário configuração local com postfix etc.

De alguma maneira, o Ubuntu está bloqueando o PHPMailer de conectar-se ao servidor SMTP do Gmail, posso afirmar isso pois usei o mesmo script em ambiente Windows e em outro ambiente LAMP da Hostgator(hospedagem compartilhada) e funcionou perfeitamente. Pesquisando no Google vi que o problema pode ser firewall, SELinux ou apparmor bloqueando o acesso ao SMTP do GMail. No momento não estou utilizando nenhum firewall, nenhuma regra no iptables, o SELinux e o AppArmor nem sequer estão instalados.

Como disse, em ambiente Windows a mensagem é enviada, na hospedagem compartilhada da hostgator(linux) é enviada e no meu VPS Ubuntu o PHPMailer retorna o seguinte erro:

Código: [Selecionar]
2014-09-20 07:41:43 SMTP ERROR: Failed to connect to server: Connection timed out (110) 2014-09-20 07:41:43 SMTP connect() failed. Message was not sent.Mailer error: SMTP connect() failed.
Segue código do PHPMailer que estou utilizando:

Código: [Selecionar]
require("phpmailer/PHPMailerAutoload.php"); // path to the PHPMailer class.
 
   $mail = new PHPMailer();
   $mail->IsSMTP();
   $mail->SMTPDebug = 1;
   $mail->Host = "smtp.gmail.com";
   $mail->Port = "465";
   $mail->SMTPAuth = true;
   $mail->SMTPSecure = 'ssl';
   $mail->Username = "xxxx@gmail.com";
   $mail->Password = "xxxxx";
    
   $mail->From     = "xxxx@gmail.com";
   $mail->FromName = "Teste";
   $mail->AddAddress("xxxx@live.com", "Teste Recipient");
   $mail->AddReplyTo("xxxx@live.com", "Teste Name");
 
   $mail->Subject  = "Olá";
   $mail->Body     = "Teste de email";
   $mail->WordWrap = 50;  
 
   if(!$mail->Send()) {
echo 'Message was not sent.';
echo 'Mailer error: ' . $mail->ErrorInfo;
exit;
   } else {
echo 'Message has been sent.';
   }

Onde o Ubuntu pode estar fazendo esse bloqueio sendo que não é configuração do PHPMailer, firewall, selinux ou apparmor? Também como posso ter certeza que o SELinux ou AppArmor estão desinstalados/desabilitados? Obrigado.

EDIT---

O problema parece estar relacionado a conexão com o SMTP do GMail, utilizei o comando telnet smtp.gmail.com 465 e o servidor não consegue se conectar. Meu firewall não tem nenhuma regra. O que pode estar bloqueando essa conexão?
Título: Re: Ubuntu bloqueando de alguma maneira acesso a SMTP externo utilizando PHPMailer
Enviado por: zekkerj em 21 de Setembro de 2014, 17:00
Esse servidor está hospedado onde? Já vi problemas desse tipo, e era problema no servidor de hospedagem.
Título: Re: Ubuntu bloqueando de alguma maneira acesso a SMTP externo utilizando PHPMailer
Enviado por: Piucco em 23 de Setembro de 2014, 19:54
Olá,

Descobri o problema, era a DigitalOcean bloqueando entradas e saídas em todas as portas relacionadas a servidores de email. Tive que explicar o porque precisava utilizar o SMTP do GMail para eles desbloquearem. Politica anti-spam.