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