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

Não consigo enviar o e-mail pelo site.

Estou com problemas para fazer esta parte funcionar.

Fiz a seguinte página e não consigo enviar o e-mail, gerando o erro:

Erro ao enviar mensagem: SMTP connect() failed.

Já verifiquei o usuário e senha. No entanto, uso o WAMP, não sei se é necessário alguma configuração para que o PHPMailer funcione.

Segue os códigos, sem a minha senha é claro.

contato.php

<?php
$titulo = "Fale Conosco";
$descricao = "Camila Silva, trabalha na Pipolino";
$imagem = "banners\contato.png";
$legenda = "Foto: Camila Silva, trabalha na Pipolino";

session_start();
require_once ("cabecalho.php");
?>

<?php if (isset($_SESSION ["danger"])) { ?>
<p class="alert-danger"><?=$_SESSION["danger"]?></p>
<?php unset($_SESSION["danger"]);?>
<?php } ?>

<?php if (isset($_SESSION ["success"])) { ?>
<p class="alert-success"><?=$_SESSION["success"]?></p>
<?php unset($_SESSION["success"]);?>
<?php } ?>



<form action="envia-contato.php" method="POST">
    <table class="table-contato">
        <tr>
            <td>Nome:</td>
            <td><input type="text" name="nome" class="form-control" /></td>
        </tr>
        <tr>
            <td>E-mail:</td>
            <td><input type="text" name="email" class="form-control" /></td>
        </tr>
        <tr>
            <td>Telefone:</td>
            <td><input type="text" name="telefone" class="form-control" /></td>
        </tr>
        <tr>
            <td>Cidade:</td>
            <td><input type="text" name="cidade" class="form-control" /></td>
        </tr>
        <tr>
            <td>Mensagem:</td>
            <td><textarea name="mensagem" class="form-control"> </textarea></td>
        </tr>
        <tr>
            <td><button class="btn">Enviar</button></td>
        </tr>
    </table>
</form>

<?php require_once ("rodape.php"); ?>

envia-conecta.php

<?php
$nome = $_POST ["nome"];
$email = $_POST ["email"];
$telefone = $_POST ["telefone"];
$cidade = $_POST ["cidade"];
$mensagem = $_POST ["mensagem"];

session_start();
require_once ("PHPMailerAutoload.php");

$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->Username = "feandrad@gmail.com";
$mail->Password = "********";

$mail->setFrom("feandrad@gmail.com", "Felipe Gostoso");
$mail->addAddress("feandrad@gmail.com");
$mail->Subject = "Teste envio E-mail pelo site";

$mail->msgHTML(
        "<html>de: {$nome}<br/> 
        email: {$email}<br/> 
        telefone: {$telefone}<br/> 
        cidade: {$cidade}<br/> 
        mensagem: {$mensagem}</html>");

$mail->AltBody = "de: {$nome}
        \nemail: {$email}
        \ntelefone: {$telefone} 
        \ncidade: {$cidade} 
        \nmensagem: {$mensagem}";

if ($mail->send()) {
    $_SESSION ["success"] = "Mensagem enviada com sucesso.";
} else {
    $_SESSION ["danger"] = "Erro ao enviar mensagem: " . $mail->ErrorInfo;
}
header("Location: contato.php");

die();
14 respostas

O código parece correto mesmo. Talvez estejamos com algum outro problema e não está aparecendo.

Teste colocar informações de debug e ver se aparece algo mais informativo :

$mail->SMTPDebug = 2;
$mail->Debugoutput = 'html';

Outra pergunta: você tem 2-phase auth habilitado no seu Gmail? Se tiver precisa gerar uma senha específica....

Adicionei as linhas indicadas, mas a mensagem de erro foi a mesma.

Sobre o 2-phase auth, não sei o que é isso, mas uso esta senha no meu Outlook. As configurações da página também estão iguais ao Outlook.

Se puder me indicar como verifico essa configuração no Gmail, eu agradeço.

No meu caso, precisei ativar uma configuração do gmail de "Aplicativos menos seguros". segue o link: https://www.google.com/settings/security/lesssecureapps

Sim, minha conta já estava ativada. Vou ver desativar e ativar novamente para ver se força a atualização no sistema da google.

(atualizando) Mesma coisa, não enviou. Estou desconfiando que pode ser alguma configuração do meu ambiente de testes, pois estou testando no WAMP na minha máquina e uso praticamente todas as configurações padrão dele. Não sei se tem que liberar algum acesso.

Testei também com o Kaspersky desativado e o resultado foi o mesmo.

Qual sistema operacional você usa?

Eu tive problemas com o Mac mas foi um problema no envio de e-mail via Java. Em php funcionava normal, talvez seja o mesmo que o seu. O problema é que não consegui resolver no Java kkkkk

Bom, tente pegar o seu código, enviar para o servidor que fizemos o deploy no final do curso anterior e teste o envio de e-mail por lá. Assim, saberemos se é seu SO / rede ou realmente algo no código.

Abraço

Flavio, dois professores responderam essa dúvida. O Felipe, autor da dúvida não retornou a dúvida. Você está com alguma dúvida que podemos lhe ajudar? Estamos aqui para ajudar.

Nada ainda, uso windows 7 professsional original 64bits. Vou ver se separo um tempo para testar no servidor.

Pode ser Firewall ou coisas do gênero. Teste no servidor e assim isolamos o problema de ser seu ambiente ou o código.

Abraço.

Subi a aplicação para o servidor e ao clicar em enviar com todos os campos preenchidos gerou a mensagem em uma nova página:

SERVER -> CLIENT: 220 mx.google.com ESMTP o38sm5940046yhp.34 - gsmtp
CLIENT -> SERVER: EHLO pipolino.esy.es
SERVER -> CLIENT: 250-mx.google.com at your service, [31.170.166.33]250-SIZE 35882577250-8BITMIME250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
CLIENT -> SERVER: STARTTLS
SERVER -> CLIENT: 220 2.0.0 Ready to start TLS
CLIENT -> SERVER: EHLO pipolino.esy.es
SERVER -> CLIENT: 250-mx.google.com at your service, [31.170.166.33]250-SIZE 35882577250-8BITMIME250-AUTH LOGIN PLAIN XOAUTH XOAUTH2 PLAIN-CLIENTTOKEN250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
CLIENT -> SERVER: AUTH LOGIN
SERVER -> CLIENT: 334 VXNlcm5hbWU6
CLIENT -> SERVER: ZmVhbmRyYWRAZ21haWwuY29t
SERVER -> CLIENT: 334 UGFzc3dvcmQ6
CLIENT -> SERVER: RHJmbHk3NDc4
SERVER -> CLIENT: 235 2.7.0 Accepted
CLIENT -> SERVER: MAIL FROM:<feandrad@gmail.com>
SERVER -> CLIENT: 250 2.1.0 OK o38sm5940046yhp.34 - gsmtp
CLIENT -> SERVER: RCPT TO:<feandrad@gmail.com>
SERVER -> CLIENT: 250 2.1.5 OK o38sm5940046yhp.34 - gsmtp
CLIENT -> SERVER: DATA
SERVER -> CLIENT: 354 Go ahead o38sm5940046yhp.34 - gsmtp
CLIENT -> SERVER: Date: Tue, 23 Sep 2014 18:59:30 +0000
CLIENT -> SERVER: To: feandrad@gmail.com
CLIENT -> SERVER: From: Felipe Andrade <feandrad@gmail.com>
CLIENT -> SERVER: Subject: Teste envio E-mail pelo site
CLIENT -> SERVER: Message-ID: <3f8f4f9432047990995d8d5d9ed4c512@pipolino.esy.es>
CLIENT -> SERVER: X-Priority: 3
CLIENT -> SERVER: X-Mailer: PHPMailer 5.2.8 (https://github.com/PHPMailer/PHPMailer/)
CLIENT -> SERVER: MIME-Version: 1.0
CLIENT -> SERVER: Content-Type: multipart/alternative;
CLIENT -> SERVER: boundary="b1_3f8f4f9432047990995d8d5d9ed4c512"
CLIENT -> SERVER: Content-Transfer-Encoding: 8bit
CLIENT -> SERVER: 
CLIENT -> SERVER: --b1_3f8f4f9432047990995d8d5d9ed4c512
CLIENT -> SERVER: Content-Type: text/plain; charset=us-ascii
CLIENT -> SERVER: 
CLIENT -> SERVER: de: Felipe Domingues Silva de Andrade
CLIENT -> SERVER: 
CLIENT -> SERVER: email: feandrad@gmail.com
CLIENT -> SERVER: 
CLIENT -> SERVER: telefone: 6730262045 
CLIENT -> SERVER: 
CLIENT -> SERVER: cidade: Campo Grande 
CLIENT -> SERVER: 
CLIENT -> SERVER: mensagem: Funciona coisa de Deus! 
CLIENT -> SERVER: 
CLIENT -> SERVER: 
CLIENT -> SERVER: --b1_3f8f4f9432047990995d8d5d9ed4c512
CLIENT -> SERVER: Content-Type: text/html; charset=us-ascii
CLIENT -> SERVER: 
CLIENT -> SERVER: <html>de: Felipe Domingues Silva de Andrade<br/> 
CLIENT -> SERVER: email: feandrad@gmail.com<br/> 
CLIENT -> SERVER: telefone: 6730262045<br/> 
CLIENT -> SERVER: cidade: Campo Grande<br/> 
CLIENT -> SERVER: mensagem: Funciona coisa de Deus! </html>
CLIENT -> SERVER: 
CLIENT -> SERVER: 
CLIENT -> SERVER: 
CLIENT -> SERVER: --b1_3f8f4f9432047990995d8d5d9ed4c512--
CLIENT -> SERVER: 
CLIENT -> SERVER: .
SERVER -> CLIENT: 250 2.0.0 OK 1411498771 o38sm5940046yhp.34 - gsmtp
CLIENT -> SERVER: QUIT
SERVER -> CLIENT: 221 2.0.0 closing connection o38sm5940046yhp.34 - gsmtp

E recebi o e-mail alguns minutos depois rsrs

Então o único problema é essa tela com as mensagens, deve ser mesmo a configuração do WAMP, pois com o Kaspersky desativado o resultado foi o mesmo.

Agora, para encerrar o problema, por que essa tela com mensagens foi gerada?

Grato.

Se alguém souber se tem que configurar algo no Apache ou no php.ini eu ficaria grato.

solução!

Felipe, a página é porque o debug está ligado:

$mail->SMTPDebug = 2;

Remove essa linha e vê se ele tira.

Sobre a sua máquina, aí realmente é um caso muito específico. Tentar desabilitar o firewall do próprio windows, acho que ele tem um interno. E se não der, sugiro tentar instalar o PHP standalone mesmo. No site do php (php.net) tem como fazer.

Você encontra mais exemplos do PHPMailer aqui: https://github.com/Synchro/PHPMailer/tree/master/examples

Abraço

Blz Paulo, obrigado pela ajuda.

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