Autor Tópico: Ubuntu bloqueando de alguma maneira acesso a SMTP externo utilizando PHPMailer  (Lida 3890 vezes)

Offline Piucco

  • Usuário Ubuntu
  • *
  • Mensagens: 13
    • Ver perfil
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?
« Última modificação: 20 de Setembro de 2014, 11:55 por Piucco »

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Ubuntu bloqueando de alguma maneira acesso a SMTP externo utilizando PHPMailer
« Resposta #1 Online: 21 de Setembro de 2014, 17:00 »
Esse servidor está hospedado onde? Já vi problemas desse tipo, e era problema no servidor de hospedagem.
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

Offline Piucco

  • Usuário Ubuntu
  • *
  • Mensagens: 13
    • Ver perfil
Re: Ubuntu bloqueando de alguma maneira acesso a SMTP externo utilizando PHPMailer
« Resposta #2 Online: 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.