Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal preciso urgentemente de um sistema de recuperar senha já fiz n coisas, já vi diversos posts sobre esse assunto e não da certo. Fiz pelo mail mas coloquei um e-mail do gmail fui lá no php.ini fiz tudo e nada da certo preciso que a pessoa receba um e-mail com seu dados e a senha esquecida via localhost postgres estava assim:
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'From: Portal <meunome@gmail.com>' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .="exPriority:1\n..";//prioridade e-mail
if(mail("meunome@gmail.com",$destinatario,$assunto, $corpo, $headers)){ Ta dando erro aqui no sendmail php.ini
php.ini
[mail function]
; For Win32 only.
SMTP = localhost aqui tinha colocado smtp.gmail.com
smtp_port = 25
; For Win32 only.
;sendmail_from = me@example.com Aqui tinha colocado meu email
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =
Só que ontem a noite estudando muito essa parte vi que tem um sendmail para baixar descompactar e por o caminho path baixei um mais o arquivo tava incompleto então preciso de ajuda realmente. Vocês sabem uma maneira mais fácil tipo com phpmailer sei fazer para enviar e-mails, mas como coloco um metodo para mostra a senha do usuario do banco em seu email quando digitar seu e-mail abrir lá ta a senha e tal. Já fiz de diversas maneiras se alguém puder me ajudar.
>
você não precisa mexer no seu php.ini
baixa o PHPmailer https://github.com/S...hive/master.zip
Nele tem exemplo bem simples na pasta EXEMPLES
<?php
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 0;
$mail->Debugoutput = 'html';
$mail->Host = "smtp.gmail.com.br";
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->IsHTML(true);
$mail->Username = "email_do_remetente@gmail.com";
$mail->Password = "senha";
$mail->setFrom('email_do_remetente@gmail.com', 'nome do remetente');
$mail->addAddress('email_do_destinatario@email.com.br', 'nome do destinatario');
$mail->Subject = 'Titulo do email';
$mail->Body = 'teste de mensagem no corpo do email';
//send the message, check for errors
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Enviado";
}
?>
http://forum.imasters.com.br/topic/538733-envio-de-e-mail-autenticado-e-valido/
Olá Wolfphw, sim eu tenho essa pasta exemples e tenho um formulário de contato com phpmailer fiquei na dúvida de como mostrar por e-mail os dados de como pegar o login e senha e mostrar no email. Tem algum ex de recuperação de senha pegando dados php do banco e utilizando ele já fiz n coisas e não funcionou agora estou querendo fazer do zero novamente creio que com função mail deve ser mais complicada pelo que vi.
Segue exemplo do 0 para enviar senha para e-mail do solicitante, utilizando o modelo de envio de e-mail do wolfphw
Formulário em HTML
<html>
<body>
<form action="consulta.php" method="GET">
Digite o e-mail para recuperar a senha <input type="text" name="email" value=""><br/>
<input type="submit" value="Enviar">
</form>
</body>
<html>
script consulta.php
<?php
/* Recupera senha e envia e-mail */
$email = $_GET['email']; // Recupera email informado do formulario
/* Cria conexão com banco de dados */
$con = mysql_connect("localhost", "user", "senha");
mysql_select_db("nome_da_base", $con);
/* Pesquisa por e-mail informado e retorna senha */
$sql = "SELECT senha FROM usuarios WHERE email = " . $email;
$resp = mysql_query($sql, $con);
if (mysql_num_rows($resp) > 0)
{
$senha = '';
while($r = mysql_fetch_array($resp))
{
$senha = $r['senha'];
}
$conteudo_email = 'Sua senha é: ' . $senha;
/* Com a senha em mãos envia no corpo do e-mail */
/* Ex de envio informado pelo: wolfphw */
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 0;
$mail->Debugoutput = 'html';
$mail->Host = "smtp.gmail.com.br";
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->IsHTML(true);
$mail->Username = "email_do_remetente@gmail.com";
$mail->Password = "senha";
$mail->setFrom('email_do_remetente@gmail.com', 'nome do remetente');
$mail->addAddress('email_do_destinatario@email.com.br', 'nome do destinatario');
$mail->Subject = 'Titulo do email';
$mail->Body = $conteudo_email;
//send the message, check for errors
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Enviado";
}
} else
{
echo 'E-mail não encontrado na base';
}
?>
O exemplo é simples, mas se ajustar a conexão com o teu banco e o código de envio de e-mail deve funcionar.
To tentando transformar aqui para usar esse código no postgres. Ta dando esse erro:
Fatal error: Call to undefined function pg_select_db() in C:\Program Files\PostgreSQL\EnterpriseDB-ApachePHP\apache\www\portal\recupera.php
Não precisa desse comando pg_select_db("portal", $con); você já definiu a base de dados 'portal' na linha de cima, no comando pg_connect()
Na linha que está assim:
$pg = "SELECT senha FROM cadastro WHERE email = " . $email;
Coloque assim:
$pg = "SELECT senha FROM cadastro WHERE email = '" . $email . "'";Um maneira mais simples de fazer é com o código abaixo, ele está testado e 100% funcional e não precisa mexer em qualquer outra configuração do PHP.
<?php
// Sua conexão com banco de dados
require_once("conection.php");
// Pega valor do campo
$emailRecupera = $_POST['emailRecupera'];
// Faz a consulta por aquele valor inserido no campo acima
$sql1 = mysql_query("SELECT Email FROM TABELA where Email='$emailRecupera'");
// Verifica se aquele email existe.
if(mysql_num_rows($sql1) == 0 ){
// se igual a 0 vai mostrar essa mensagem
echo '<script>alert("Email Incorreto ou Usuário Não Existe !!!");location.href=("../index.php");</script>';
}else{
// Se encontrar um índice pega as informações e ele envio os dados
**$sql2 = mysql_query("SELECT *FROM TABELA where Email='$emailRecupera'");**
// Aqui você chama as informações que serão enviadas
while($res = mysql_fetch_array($sql2)){
// No meu caso foram essas
$nome = $res['Nome'];
$login = $res['Email'];
$senha = $res['senha'];
}
$data = date('d/m/Y H:i');
// Na variável $mensagem vai as informações de recuperação como email, senha ou qualquer dados que é chamado no select acima
// Lembre-se de adicionar a variável $data no fim da mensagem para evitar de o email ser classificado como SPAM
$mensagem = "";
// Email que fará o envio para quem solicitar os dados
$para = 'email@email.com';
// Assunto do email
$assunto = 'Assunto';
$header = "From: $para\n";
$header .= "Content-Type: text/html; charset=\"utf-8\"\n\n";
if(@mail($emailRecupera,$assunto,$mensagem,$header)){
echo '<script>alert("Email de Recuperação enviado com sucesso !!!");location.href=("../index.php");</script>';
}
}
?>
>
Não precisa desse comando pg_select_db("portal", $con); você já definiu a base de dados 'portal' na linha de cima, no comando pg_connect()
Na linha que está assim:
$pg = "SELECT senha FROM cadastro WHERE email = " . $email;
Coloque assim:
$pg = "SELECT senha FROM cadastro WHERE email = '" . $email . "'";
Agora ta dando seguinte erro:
Warning: pg_query() expects parameter 1 to be resource, string given in C:\Program Files\PostgreSQL\EnterpriseDB-ApachePHP\apache\www\portal\recupera.php on line 19
Warning: pg_num_rows() expects parameter 1 to be resource, null given in C:\Program Files\PostgreSQL\EnterpriseDB-ApachePHP\apache\www\portal\recupera.php on line 21
E-mail não encontrado na base
É porque no método pg_query você primeiro passa conexão, depois a query
Troque
$resp = pg_query($pg, $con);
Por
$resp = pg_query($con, $pg);
>
É porque no método pg_query você primeiro passa conexão, depois a query
Troque
$resp = pg_query($pg, $con);
Por
$resp = pg_query($con, $pg);
o phpmailer ta na pasta contato ai pus o caminho assim antes não tava encontrando ai arrumei
require('contato/phpmailer/PHPMailerAutoload.php');
Mas
Deu esse erro:
Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
vc não precisa mexer no seu php.ini
baixa o PHPmailer https://github.com/S...hive/master.zip
Nele tem exemplo bem simples na pasta EXEMPLES
http://forum.imasters.com.br/topic/538733-envio-de-e-mail-autenticado-e-valido/