SMTP -> ERROR: Falha ao conectar-se ao servidor: Conexão expirada (110) O seguinte Falha no endereço: xxxxx@gmail.com ERRO

No formulário de contato está funcionando bem no localhost. Enquanto está hospedado, não está funcionando. Mostrando o erro

**"SMTP -> ERROR: Failed to connect to server: Connection timed out (110) The following From address failed: xxxxx@gmail.com ERROR"** 

Anexei o meu formulário de código contact_submit.php

  include_once('class.phpmailer.php'); $mail->IsSMTP(); // $mail->Host = "smtp.gmail.com"; $mail->SMTPDebug = 1; $mail->SMTPAuth = true; $mail->Host = "smtp.gmail.com"; $mail->Port = 587; $mail->Username = "xxxx@gmail.com"; $mail->Password = "xxxx@123"; $mail->SMTPSecure = "tls"; $mail->SetFrom($email, $name); $mail->AddReplyTo($email,$name); $mail->Subject = "Contact - xxx"; $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; $mail->MsgHTML($body); $mail->AddAddress("xxx@gmail.com","xxx"); if(!$mail->Send()) { echo $mail; echo "Mailer Error: " . $mail->ErrorInfo; } else { echo ''; exit; } 

Estou usando phpmailer 5.2.1.

Entrei em contato com o lado da hospedagem, mas não estou recebendo uma resposta real.

Eu acredito que você precisa se conectar ao smtp.gmail.com na porta 465, e não na porta 587. Além disso, o SSL é necessário. Então, você deveria ter:

 $mail->Host = "smtp.gmail.com"; $mail->Port = 465; $mail->SMTPSecure = "ssl"; 

Você pode aumentar o tempo limite, antecipando seu código com:

 set_time_limit(3600); 

e, em seguida, especificando o tempo limite do object $mail como tal:

 $mail->Timeout = 3600; 

Eu tive um problema semelhante, com o correio enviado corretamente do meu servidor local, mas não o meu live on internet. Aconteceu o meu host (Bluehost) bloqueou conexões de saída na porta 465.

Encontrei um modo maravilhoso para o qual me corrigiu:

  1. No seu cPanel> Correio, encontre a seção MX (input MX) e selecione ‘trocador de mensagens remotas’.
  2. Na seção de contas de e-mail do cPanel, crie o endereço de e-mail apropriado (não ignore isso)
  3. Não use “smtp.live.com” como seu host smtp. Use o host smtp do seu Shared Linux Hosting smtp. Não sei como você receberá o seu. O meu é boxXXXX.bluehost.com.
  4. Defina seu nome de usuário e senha para ser o mesmo que a conta de e-mail que você configurou no cPanel.