9
respostas

Envio de email via SMTP

Sempre que tento fazer o envio do email, recebo o código de erro:

"SMTP connect() failed".

Já tentei mudar a opção de aplicativos menos seguros do Gmail e também tentei adicionar o "date_default_timezone_set();" mas ainda não funciona.

O debug do PHPMailer me diz o seguinte:

2018-05-14 03:40:20 SERVER -> CLIENT: 220 smtp.gmail.com ESMTP l76-v6sm1160693qkl.84 - gsmtp
2018-05-14 03:40:20 CLIENT -> SERVER: EHLO localhost
2018-05-14 03:40:20 SERVER -> CLIENT: 250-smtp.gmail.com at your service, [200.108.142.18]250-SIZE 35882577250-8BITMIME250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
2018-05-14 03:40:20 CLIENT -> SERVER: STARTTLS
2018-05-14 03:40:20 SERVER -> CLIENT: 220 2.0.0 Ready to start TLS
SMTP Error: Could not connect to SMTP host.
2018-05-14 03:40:22 CLIENT -> SERVER: QUIT
2018-05-14 03:40:22 
2018-05-14 03:40:22 
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

O meu código está assim:

session_start();
$nome = $_POST["nome"];
$email = $_POST["email"];
$mensagem = $_POST["mensagem"];

require_once("PHPMailerAutoload.php");

$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPDebug = 2;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->Username = '*email pessoal*';
$mail->Password = '*senha pessoal*';

$mail->setFrom("*email pessoal*", "Douglas Schwingel");
$mail->addAddress("*email pessoal*");
$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}";


if($mail->send()) {
     $_SESSION["success"] = "Obrigado por entrar em contato. Você será retornado em breve.";
     header("Location: index.php");
} else {
     $_SESSION["danger"] = "A mensagem não pôde ser enviada. Tente novamente." . $mail->ErrorInfo;
     header("Location: contato.php");

}
die();

Alguma sugestão?

9 respostas

Fala ai Douglas, beleza? Poderia postaro log completo referete a rotina de email?

Fico no aguardo.

Onde posso achar outro log além do feito pelo debug?

O meu também tá dando esse erro quando tenta buscar o phpmailer no git.

Bom, aqui para mim funciona, vou postar as configurações que eu defino:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=EMAIL
MAIL_PASSWORD=SENHA_DO_EMAIL
MAIL_ENCRYPTION=ssl

Tenten mudar, ou verifiquem se estão iguais.

Além disso, vocês tem que ir no gmail e liberar para o uso de terceiros.

Espero ter ajudado.

Fiz a alteração para ssl com a porta 465 mas mesmo assim não funcionou. Já tinha habilitado o meu gmail para uso de apps menos seguros.

Certo, tem como subir seu projeto no github e me passar o link, dai eu faço o teste aqui.

Espero ter ajudado.

Fala Douglas, boa tarde!

Estava com o mesmo problema... na época, Matheus Castiglioni , me deu um help, com essa mesma classe, mas não funcionou.

No meu caso, foi o avast que estava travando os envios, um dos módulos dele, foi apenas pausar o antivírus, e enviou normalmente.

Link para o projeto no github:

https://github.com/douglas-schwingel/aula-loja

Fala ai Douglas, desculpe a demora, não visto sua resposta, faz o seguinte, no seu envia-contato.php, muda a porta e segurança:

$mail->Port = 465;
$mail->SMTPSecure = 'ssl';

Seu problema deve resolver.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software