Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

Erro SMTP connect() failed.

Meu programa não manda e-mail, fica dando este erro de SMTP, em um outro projeto da faculdade tive o mesmo problema.

Já coloquei no gmail aquele esquema de aplicativos menos seguros no gmail, mudei o $mail->SMTPSecure = 'tls'; para ssl e ainda assim não funciona.

Eu uso ubuntu, sera que precisar fazer algum tipo de configuração no xampp?

Erro ao enviar mensagem SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

Segue código:

<?php
session_start();

require_once("PHPMailerAutoload.php");

$nome = $_POST['nome'];
$email = $_POST['email'];
$mensagem = $_POST['mensagem'];

//Dados do meu servidor de email
$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->Username = "*********@gmail.com";
$mail->Password = "******";

//Quem está enviando e quem irá receber
$mail->setFrom("*********@gmail.com", "Alura Curso PHP e MySQL");
$mail->addAddress("********@gmail.com");

//Titulo e corpo da mensagem
$mail->Subject = "Email de contato da loja";
$mail->msgHTML("<html>de: {$nome}<br/>email: {$email}<br/>mensagem: {$mensagem}</html>");
$mail->AltBody = "de: {$nome}\nemail:{$email}\nmensagem: {$mensagem}";

//Mensagem de envio ou erro
if($mail->send()) {
    $_SESSION["success"] = "Mensagem enviada com sucesso";
    header("Location: index.php");
} else {
    $_SESSION["danger"] = "Erro ao enviar mensagem " . $mail->ErrorInfo;
    header("Location: contato.php");
}
die();
8 respostas

Já checou a caixa da senha (maiúscula/minúscula) ?

Bom dia,

É possível que seja algo específico do seu ambiente, pode ser no SO, em um firewall, algo estar bloqueando o e-mail de sair.

Como eu uso Windows não sei te dizer onde olhar isso no Linux, mas eu fiz do mesmo jeito que você e funcionou sem problemas, a liberação de aplicativos menos seguros do Gmail foi a única coisa que precisei ajustar.

Teria que conferir no seu caso se pode ter algo a mais de rede/SO bloqueando a conexão com o smtp.

Abraço.

Tente alterar a linha para :

$mail->SMTPSecure = 'ssl';

Caso não funcione com a mudança de porta, outra opção é configurar a conta do GMAIL para : "Permitir que aplicativos menos seguros acessem sua conta".

Mas, não é o recomendado em ambiente profissional.

Quando eu tive esse problema eram duas coisas:

Host

$mail->Host = "ssl://smtp.gmail.com";

Não tinha a extensão open_ssl instalada:

<?php echo extension_loaded('openssl')? "OK" : "Nao tem";

Pode ajudar:

$mail->SMTPDebug = 1;

https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting#smtp-error-could-not-connect-to-smtp-host

Verifique na sua caixa do Gmail se não há mensagens do próprio Google avisando que um aplicativo foi bloqueado.

Ja fiz de tudo e mais um pouco e nada funciona. acho que vou tentar outros modos de mandar e-mail no PHP

solução!

Peguei todo meu projeto e coloquei no windows, não mudei absolutamente nada e funcionou o envio de emails, algo no linux tava bloqueando mesmo.

Valeu!