Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FelipeSAMA

problemas ao enviar email usando Gmail e SMTP

Recommended Posts

Boa noite galera. Quando tento enviar um email pelo formulario do meu site, usando gmail e smtp, acontece o seguinte erro:

 


Mail error: SMTP connect() failed.

 

Eu nunca tentei fazer autenticação por SMTP, por isso não sei me virar...

 

Fiz um formulário bem simples so pra testar, baixei um pacote com os seguitens arquivos: classes, dados, phpmailer

 

este aqui é o formulário:

 

 

<form action="email.php" method="post">
<label for="Nome">Nome:</label>
<input type="text" name="Nome" size="35" />


<label for="Assunto">Assunto:</label>
<input type="text" name="Assunto" size="35" />


<label for="Email">E-mail:</label>
<input type="text" name="Email" size="35" />


<label for="Fone">Telefone:</label>
<input type="text" name="Fone" size="35" />


<label for="Mensagem">Mensagem:</label>
<textarea name="Mensagem" rows="8" cols="40"></textarea>


<input type="submit" name="Enviar" value="Enviar" />
</form>

 

Este aqui é o arquivo email.php

 

 

<?php
$Nome = $_POST["Nome"]; // Pega o valor do campo Nome
$Assunto = $_POST["Assunto"]; // Pega o valor
$Fone = $_POST["Fone"]; // Pega o valor do campo Telefone
$Email = $_POST["Email"]; // Pega o valor do campo Email
$Mensagem = $_POST["Mensagem"]; // Pega os valores do campo Mensagem


// Variável que junta os valores acima e monta o corpo do email


$Vai = "Nome: $Nome\n\nE-mail: $Email\n\nTelefone: $Fone\n\nMensagem: $Mensagem\n";


require_once("phpmailer/class.phpmailer.php");


define('GUSER', 'felipe.udk@gmail.com'); // <-- Insira aqui o seu GMail
define('GPWD', 'minhasenha'); // <-- Insira aqui a senha do seu GMail


function smtpmailer($para, $de, $de_nome, $assunto, $corpo) { 
global $error;
$mail = new PHPMailer();
$mail->IsSMTP(); // Ativar SMTP
$mail->SMTPDebug = 0; // Debugar: 1 = erros e mensagens, 2 = mensagens apenas
$mail->SMTPAuth = true; // Autenticação ativada
$mail->SMTPSecure = 'ssl'; // SSL REQUERIDO pelo GMail
$mail->Host = 'smtp.gmail.com'; // SMTP utilizado
$mail->Port = 465;   // A porta 587 deverá estar aberta em seu servidor
$mail->Username = GUSER;
$mail->Password = GPWD;
$mail->SetFrom($de, $de_nome);
$mail->Subject = $Assunto;
$mail->Body = $corpo;
$mail->AddAddress($para);
if(!$mail->Send()) {
$error = 'Mail error: '.$mail->ErrorInfo; 
return false;
} else {
$error = 'Mensagem enviada!';
return true;
}
}


// Insira abaixo o email que irá receber a mensagem, o email que irá enviar (o mesmo da variável GUSER),  
// o nome do email que envia a mensagem, o Assunto da mensagem e por último a variável com o corpo do email.


 if (smtpmailer('contato@felipeandres.com.br', 'felipe.udk@gmail.com', 'Nome do Enviador', 'Assunto do Email', $Vai)) {


Header("location:http://www.dominio.com.br/obrigado.html"); // Redireciona para uma página de obrigado.


}
if (!empty($error)) echo $error;
?>

 

BOm, tem algo de errado com o código ou estou esquecendo de alguma coisa?

 

Obrigado!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja a vídeo da upinside que ensina como utilizar a classe PHPMailer, achou que lhe ajuda-la nesse assunto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Experimente trocar

$mail->SMTPSecure = 'ssl'; // SSL REQUERIDO pelo GMail

Por

$mail->SMTPSecure = 'tls'; // SSL REQUERIDO pelo GMail

E

$mail->Port = 465;   // A porta 587 deverá estar aberta em seu servidor

Por

$mail->Port = 587;   // A porta 587 deverá estar aberta em seu servidor

Se não der certo, habilite o debug e cole a mensagem aqui:

$mail->SMTPDebug = 1;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora ficou cabuloso hahahahha

2014-03-27 18:22:44 CLIENT -> SERVER: EHLO www.felipeandres.com.br 2014-03-27 18:22:44 CLIENT -> SERVER: AUTH LOGIN 2014-03-27 18:22:45 SMTP ERROR: AUTH command failed: 530 5.7.0 Must issue a STARTTLS command first. s5sm4577987yhp.8 - gsmtp 2014-03-27 18:22:45 CLIENT -> SERVER: QUIT SMTP connect() failed. Mail error: SMTP connect() failed.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá uma checada no seu Gmail e veja se ele não está bloqueando a conexão, se caso estiver, desbloqueie pelo próprio Gmail.

 

Só uma pergunta, você está usando a última versão do PHPMAIL?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ja colocou no Host o seguinte? :

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

ja que usa criptografia, isso pode funcionar

 

abraços!


A porta é 465 mesmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.