Jump to content
Fábio Corrêa

Problemas com classe phpmailer

Recommended Posts

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.

Citar

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 = 'emaildogmail@gmail.com'; //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 = 'emaildoremetente@email.com';
			// 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("emaildestinatario@email.com"); // 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>";

			}

?>
Citar

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>

Localmente, com wamp exibe esse erro aqui:

 

local.png.9a33cce667f95975ee7ab1dc0effa8

 

 

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.

Já tentei com outra conta do gmail.

 

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

 

O que eu achei estranho foi que, ontem tentando consertar esse erro, por acaso acessei o email do gmail que estou utilizando e recebi um alerta.

 

image.png.bba743ec97c5ef0b9c47958744ebe2

 

image.png.595ef3f43575ce2d83c3e417fa4559

 

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

 

image.png.13255d9535efd0e83afab1fc736bab

 

Estranho que quando eu alterei para uma outra conta do gmail para fazer um teste eu nem se quer recebi essas notificações do gmail.

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

 

Creio que meu código esteja funcionando perfeitamente, pois como disse ele estava funcionando e do nada parou.

 

Alguém já passou por isso? Podem me ajudar?

 

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

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Sapinn
      Galera estou usando o PHPStorm para alguns projetos e estou com meus arquivos marcados em vermelho não sei oq é alguem pode me ajuda?
       
       

    • By danielambrosio
      Estou trabalhando numa programação PHP é conectado na tabela (cl_configs) para reconhece coluna name que reconhece esses 5 campos.
      e também que adiciona esses 5 valores é adicionado nessa outra tabela (cl_ads_block_ips) nesses 8 coluna (id, ip, clicks, last_click, dads_refresh_qtd, dads_refresh_data, dads_refresh_ldata, clicks_rotativo_dia).
      E a conexão que eu usa era de outro site e não estou tendo problema e configurar em outro site que reconhece essa banco de dados abaixo.
       
      <?php $host = "localhost"; $user = "ads"; $pass = "_CMpFF4Hpa!G_gTh"; $dbname = "ads"; $port = 3306; try {     $conn = new PDO('mysql:host=' . $host . ';port=' . $port . ';dbname=' . $dbname, $user, $pass);     //echo "Conexão com banco de dados realizado com sucesso!"; } catch (PDOException $err) {     echo "Erro: Conexão com banco de dados não foi realizada com sucesso. Erro gerado " . $err->getMessage(); } ?>  
      Conecta com sucesso só não está reconhecendo a tabela (cl_configs) e nem adicionando na tabela (cl_ads_block_ips).
       
       
      Agora não sei porque não esta reconhecendo (cl_configs) e nem adicionando (cl_ads_block_ips).
       
       


    • By ment0r
      Boa tarde a todos.

      Estou iniciando um estudo com o banco MySQL (trabalho co PostgreSQL e Firebird) para futuros trabalhos. Bom, me deparei com um problema chato: caracteres especiais.
      Um exemplo: T�tulo.
      Não consigo exibir no meu site tais caracteres. O banco tem Charset/Collation: utf8/utf8_bin como configuração.
      Já usei o utf_encode e utf_decode - não resolveu.

      Alguém sabe o que mais posso fazer?
      Desde já, muito obrigado.
    • By asacap1000
      Galera salve salve!!
      Estou com um projeto em que são armazenados vídeos, porém seguindo os requisitos exigidos, para visualizar e baixar esses vídeos eles tem que aparecer com numero de cadastro do usuário que está acessando no centro do video como uma marca d'agua.
       
      Para simplesmente aparecer na tela eu consigo fazer uma camada superior com css e apresentar os dados do usuário mas para baixar o vídeo ele já faz sem a marca.
       
      Vocês conhecem algum recurso pra adicionar essa marca? ela não pode ficar no arquivo original pois outros usuário poderão baixar com sua identificação na tela.
       
      Se alguem puder me dar um norte ajudaria muito
    • By marcelo.ourico
      Estou precisando fazer o envio de um XML via webservice. Estou utilizando PHP 7.4 e nuSoap.

      Porém esse XML de envio possui várias tags com hífen. Por exemplo <tag-name></tag-name>.
       
      Esse hífen tem sido um problema, principalmente por que eu não posso enviar o XML como string. Apenas como objeto. Então imaginem isso:
       
      $objeto = simplexml_load_string($string_xml);  
      Se simplesmente eu tentar resgatar o valor da TAG já dá erro...
       
      $campo1= $objeto->tag-name;
      O erro ocorre em função de que o hífen é um caractere reservado do PHP... Então como resolver?

      Independente disso, quando eu tento fazer o envio via nuSoap, também recebo erro abaixo:
      wsdl->getTypeDef('tag-name', 'http://xyz.abr...')
      wsdl->serializeType('tag-name', 'tag-name', Object(SimpleXMLElement), '

      Alguém já passou por isso? Sabe como resolver? Pode dar uma dica?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.