Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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 GMailfunction smtpmailer($para, $de, $de_nome, $assunto, $corpo) {
global $error. $mail = new PHPMailer(). $mail->Username = GUSER. $mail->Password = GPWD. $mail->SetFrom($de, $de_nome). $mail->Subject = $Assunto. $mail->Body = $corpo. $mail->AddAddress($para). $error = 'Mail error: '.$mail->ErrorInfo. return false. $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),if (!empty($error)) echo $error.?> BOm, tem algo de errado com o código ou estou esquecendo de alguma coisa? Obrigado!tem o link aee?
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;
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.
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?
sim estou... e como faz esse processo q vc disse em cima?
Tentei enviar por Localhost e fun cionou, acredito que o problema esteja em alguma configuração do servidor... Abr8i um chamado, vou esperar
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
veja a vídeo da upinside que ensina como utilizar a classe PHPMailer, achou que lhe ajuda-la nesse assunto.