Ir ao conteúdo
  • Cadastre-se

PHP Problema com formulário de contato usando PhpMailer


Posts recomendados

Olá pessoal, boa tarde!

Estou enfrentando um problema com meu formulário de e-mail que não consigo resolver de forma alguma, já revirei a net e nada.

 

Seguinte, esse formulário que estou tendo problemas estava funcionando perfeitamente até ano passado (2017), e do nada ele para de funcionar.

Já tentei de tudo, já atualizei a classe, já utilizei outros formulários prontos e todos estão dando o mesmo erro, tanto localmente (wamp), quanto no

servidor de hospedagem.

 

O erro que apresenta é referente ao servidor smtp, parece que ele não  está conseguindo fazer autenticação.

Vou postar meu código todo e explicar de forma mais detalhada.

 

Citação

envia.php

<?php

		$nome     = utf8_decode (strip_tags(trim($_POST['nomeremetente'])));
		$email    = utf8_decode (strip_tags(trim($_POST['emailremetente'])));
		$ddd = utf8_decode (strip_tags(trim($_POST['ddd'])));
		$telefone = utf8_decode (strip_tags(trim($_POST['telefone'])));
		$assunto = utf8_decode (strip_tags(trim($_POST['assunto'])));
		$mensagem = utf8_decode (strip_tags(trim($_POST['mensagem'])));

			require_once('PHPMailer/class.phpmailer.php');

			$Email = new PHPMailer();
			$Email->SetLanguage("br");
			$Email->IsSMTP(); // Habilita o SMTP
			$Email->SMTPAuth = true; //Ativa e-mail autenticado
			$Email->Host = 'ssl://smtp.gmail.com'; // Servidor de envio # verificar qual o host correto com a hospedagem as vezes fica como smtp.
			$mail->SMTPSecure = 'ssl';	// SSL REQUERIDO pelo GMail
			$Email->Port = '465'; // Porta de envio
			$Email->Username = '[email protected]'; //e-mail que será autenticado
			$Email->Password = 'minha senha'; // senha do email
			// ativa o envio de e-mails em HTML, se false, desativa.
			$Email->IsHTML(true);
			// email do remetente da mensagem
			$Email->From = '[email protected]';
			// nome do remetente do email
			$Email->FromName = utf8_decode($email);
			// Endereço de destino do emaail, ou seja, pra onde você quer que a mensagem do formulário vá?
			$Email->AddReplyTo($email, $nome);
			$Email->AddAddress("[email protected]"); // para quem será enviada a mensagem
			// informando no email, o assunto da mensagem
			$Email->Subject = "(Contato do site )";
			// Define o texto da mensagem (aceita HTML)
			$Email->Body .= "<br /><br />
							 <strong>Nome:</strong> $nome<br /><br />
							 <strong>E-mail:</strong> $email<br /><br />
							 <strong>Telefone:</strong> $ddd - $telefone<br /><br />
							 <strong>Assunto:</strong> $assunto<br /><br />
							 <strong>Mensagem:</strong><br /> $mensagem";
			// verifica se está tudo ok com oa parametros acima, se nao, avisa do erro. Se sim, envia.
			if(!$Email->Send()){
				echo "<script>alert('Ocorreu um erro, tente novamente!');window.history.go(-1)</script>";
				echo "Erro: " . $Email->ErrorInfo;
			}else{
				echo "<script>alert('Sua mensagem foi enviada com sucesso!');window.history.go(-1)</script>";

			}

?>

 

 

Citação

form-contato.php

<div class="div-form">

<h1>Formulário de Contato</h1>
    <form action="envia.php" method="post">
        <fieldset>
            <p><label for="nome">Nome:</label></p>
            <input type="text" name="nomeremetente" size="30" class="width233" required="yes">
            <p><label for="email">E-mail:</label></p>
            <input type="text" name="emailremetente" size="30" class="width233" required="yes" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$" / >
            <p><label for="email">Telefone:</label></p>
            <input type="text" name="ddd" size="10" class="width10" pattern="[0-9]+$" />
            <input type="text" name="telefone" size="30" class="tel" pattern="[0-9]+$" />
            <p><label for="assunto">Assunto:</label></p>
            <input type="text" name="assunto" size="30" required="yes" class="width233"/>
            <p><label for="texto">Mensagem:</label></p>
            <textarea name="mensagem" rows="10" class="width233" required="yes"></textarea>
            <input type="submit" name="enviar" value="Enviar" class="enviar" />
        </fieldset>
    </form>
</div>
</body>
</html>

 

Localmente, com wamp exibe esse erro aqui:
local.png.9a33cce667f95975ee7ab1dc0effa8ee.png

 

A linha 17 do arquivo envia.php é essa aqui:

 

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

 

E no servidor online ele só exibe a mensagem de erro:

Erro de SMTP: Não foi possivel conectar com o servidor SMTP.

 

o que eu já fiz:

 

Alterei a porta para 587.

Retirei o SSL:// do > $Email->Host = 'ssl://smtp.gmail.com';

Já procurei formulários prontos, porém todos exibem o mesmo erro de SMTP.

 

E lembrando que sempre esteve ativado a opção de DISPOSITIVOS MENOS SEGUROS, no google para que ele não bloqueie o envio.

 

Bom, acho que é isso, se alguém puder me ajudar eu agradeço, já revirei o fórum todo mas nada me ajudou.

 

 

Retificando a mensagem anterior, eu por acaso acessei a conta do gmail que estou usando no phpmailer e recebi uma notificação

de segurança de que uma tentativa de login foi bloqueada.
 

 

image.png.bba743ec97c5ef0b9c47958744ebe234.png

 

 

image.png.595ef3f43575ce2d83c3e417fa455989.png

 

Só não entendi porque o gmail está bloqueando, sendo que eu já ativei o acesso a aplicativos menos seguros.
 

image.png.13255d9535efd0e83afab1fc736babfc.png

 

Será existe alguma configuração além  dessa que possa estar bloqueando????

 

Desde já eu agradeço aos amigos que disponibilizarão de seu tempo para tentar me ajudar.

Fiquem na paz!!!

 

 

 

 

 

Link para o comentário
Compartilhar em outros sites

@br.renatolima Putz, não sabia disso. Não encontrei nada falando sobre. Vou dar uma pesquisada a fundo para ver se

encontro alguém falando sobre isso e se tem alguma previsão de normalidade.

Mas muito obrigado por me informar, se souber de alguma novidade posta aqui.

Valeu, abraço!!!!

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Seguinte cara, eu tive o mesmo problema com metade dos formulários de envio que desenvolvi, a outra metade não deu problema...

 

Resolvi alterando o username, geralmente colocava e-mail e senha como sempre, depois do erro eu peguei os dados de configuração que a hospedagem envia e troquei o email pelo login.

 

Antes:

$Email->Username = '[email protected]';

 

Depois:

$Email->Username = 'dalmeidasc';

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois...

Esse exemplo está funcionando. 

<?php



use PHPMailer\PHPMailer\PHPMailer;

use PHPMailer\PHPMailer\Exception;

require 'vendor/autoload.php';



$mail = new PHPMailer(true);

try {

    //Server settings

    $mail->SMTPDebug = 2;

    $mail->isSMTP();

    $mail->Host = 'smtp.gmail.com';

    $mail->SMTPAuth = true;

    $mail->Username = '[email protected]';

    $mail->Password = '_password_';

    $mail->SMTPSecure = 'tls';

    $mail->Port = 587;





    $mail->setFrom('[email protected]', 'Admin');

    $mail->addAddress('[email protected]', 'Recipient1');

    $mail->addAddress('[email protected]');

    $mail->addReplyTo('[email protected]', 'noreply');

    $mail->addCC('[email protected]');

    $mail->addBCC('[email protected]');



    //Attachments

    $mail->addAttachment('/backup/myfile.tar.gz');



    //Content

    $mail->isHTML(true);

    $mail->Subject = 'Test Mail Subject!';

    $mail->Body    = 'This is SMTP Email Test';



    $mail->send();

    echo 'Message has been sent';

} catch (Exception $e) {

    echo 'Message could not be sent.';

    echo 'Mailer Error: ' . $mail->ErrorInfo;

}



?>

 

fonte: https://tecadmin.net/send-email-using-php-script-from-smtp/

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...