Array
(
)

Recuperar senha e enviar por email com PHP

PHP
Pretofilho
   - 06 ago 2014

Bom dia,
Olá pessoal, tudo bem ?
Estou criando uma tela para recuperar a senha de acesso por email, com PHP
o usuário preenche o input com o seu email que foi cadastrado e se existir o email no banco executa o script abaixo, porém já fiz diversos testes e, não recebo os email.
Fiz o teste para garantir se o script estava funcionando sem as linhas de envio por email, e apresentando todos os dados do usuario em tela e retorna certinho.
Quando estou executando com a função [ mail ] aparentemente parece que tudo da certo até joga na tela a mensagem que o email foi enviado com sucesso e caso não exista o email na base ele também informa na tela que o email não existe.
Alguém pode me ajudar ?
Desde já agradeço pela atenção de todos.

#Código

<?php

	$email = @$_POST['email'];
	
	$destinatario = $email;
	$remetente = "xxxxxxxxxxxxxxxxxxxx";
	
		
	if ($email <> ""){
		include 'conexao.Class.php';
		
		$sql = mysql_query("SELECT nome_usuario, login_usuario, senha_usuario, email_usuario  FROM usuarios WHERE email_usuario =                           '$email' AND status_usuario = 1 ")or die("Erro ao selecionar os dados do usuario");
		$contador = mysql_num_rows($sql);
		
		if ($contador == 1){
			while($resultado = mysql_fetch_array($sql)){
				$nome  = $resultado['nome_usuario'];
				$login = $resultado['login_usuario'];
				$email = $resultado['email_usuario'];
				$senha = $resultado['senha_usuario'];
			}
			
				$corpo_email  = "Ola, o procedimento de recuperar dados, foi efetuado com sucesso !\n..";
				$corpo_email .= "Seu login = ".$login."\n..";
				$corpo_email .= "Senha de acesso = ".$senha."\n..";
				$corpo_email .= "Seu email = ".$email."\n.. ";
				$corpo_email .= "Nao responda esse email, e-Mail automatizado";		
				@mail($destinatario,"Recuperacao de Senha",$corpo_email,$remetente);
				
				echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif>Sua senha foi enviada com sucesso                      para o email: $email.</font></div>";
	
				}else{
			 		echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif>Seu login ou email está incor                           reto.</font></div>";
					 }
		}

Ronaldo Lanhellas
   - 06 ago 2014

Vamos lá:

1 - Não sei se você digitou errado mas o certo é "mail" e não "@mail";
2 - Habilita o log de erro para ver se ocorre algum erro no envio do email: ini_set('display_errors', 'On');
3 - faz o seguinte teste:
#Código

if mail(parametros) {
    echo "enviado"; 
 }else{
    echo "nao enviado";
}

4 - Checa de as configurações do mail estão corretas no php.ini


PS: Aconcelho você deixar de lado o "mail" e usar o PhpMailer (https://github.com/PHPMailer/PHPMailer) que envia emails com autenticação, mas seguros e confiáveis.

Pretofilho
   - 06 ago 2014

Boa tarde

Olá Ronaldo, obrigado pelo retorno .

Coloquei o [ @ ] porque estava gerando uma mensagem de erro, ai para forçar adicionei o [ @ ] na frente da função para parar o erro

Vou testar a sua dica com o PHPMailer.

Assim que possível, retorno ;

Desde já agradeço pela sua atenção;

Ronaldo Lanhellas
   - 06 ago 2014


Citação:
Boa tarde

Olá Ronaldo, obrigado pelo retorno .

Coloquei o [ @ ] porque estava gerando uma mensagem de erro, ai para forçar adicionei o [ @ ] na frente da função para parar o erro

Vou testar a sua dica com o PHPMailer.

Assim que possível, retorno ;

Desde já agradeço pela sua atenção;


De nada, o PHPMailer vai lhe ser bem mais útil :D