Seja sempre curioso, esqueça do Ctrl V e Ctrl C, tente digitar novamente o código para decorar, ou melhor, aprender a lógica criada na página, assim poderemos contruir uma web melhor. Mas enquanto isso não acontece, vamos ao código.
Eu estou utilizando a Classe PHPMAILER, você pode fazer o download do arquivo PHPMAILER cliacando aqui.
Com a classe em sua máquina, vamos criar nosso banco de dados mysql. Execute o script abaixo:
CREATE DATABASE `teste`; USE `teste`; CREATE TABLE `cadastro` ( `cadastrocod` INT (5) UNSIGNED ZEROFILL AUTO_INCREMENT, `nome_user` VARCHAR (150), `email_user` VARCHAR (150), `confir_email_user` CHAR (1) DEFAULT 'N', PRIMARY KEY(`cadastrocod`) ) TYPE = MyISAM;
Agoa com o banco de dados e nossa tabela criada, faça uma conexao com ela (esta parte não explicarei neste post), feita a conexao, vamos a página que interessa. Segue o código abaixo:
cadastro.php
<?php
include 'conexao.php';
Abre_Conexao();
if($_SERVER["REQUEST_METHOD"] == "POST"){ //IF 1
mysql_query("Insert Into cadastro (`nome_user`,`email_user`) Values ('".$_POST['nome']."','".$_POST['email']."')");
if(mysql_affected_rows()==0){
$erro[] = 'Não foi possível realizar o cadastro';
}else{
/*ENVIANDO COM PHPMAILER*/
/* INCLUI A PÁGINA DA CLASS*/
include("phpmailer/class.phpmailer.php");
/*CORPO DO E-MAIL*/
$html = "
<html>
<body>
Olá ".$_POST['nome'].", seu cadastro foi realizado, mas para ter acesso ao conteúdo, clique no link abaixo para confirmar seu endereço de e-mail.<br><br>
<a href='http://www.seusite.com.br/cadastro.php?email_confirm=".$_POST['email']."' target='_blank'>Ativar/Validar e-mail</a><br><br>
Atenciosamente,<br>
Admin.
</body>
</html>";
/*INSTANCIA A OBJETOS*/
$mail = new PHPMailer();
/*MANDAR VIA SMTP*/
$mail->IsSMTP();
/*SERVIDOR SMTP*/
$mail->Host = "mail.seusite.com.br";
/*HABILITA SMTP AUTENTICADO - NAO ALTERAR */
$mail->SMTPAuth = true;
/*USUARIO DESTE SERVIDOR SMTP*/
$mail->Username = "seuemail@seusite.com.br";
/*SENHA USUARIO DESTE SERVIDOR SMTP*/
$mail->Password = "*****";
/*E-MAIL UTILIZADO PARA ENVIO, PODER SER O MESMO DO USERNAME*/
$mail->From = 'seuemail@seusite.com.br';
$mail->FromName = 'seuemail@seusite.com.br'; //Ex: nome_aqui (email@dominio.com)
/*WRAP SET O TAMANHO DO TEXTO POR LINHA*/
$mail->WordWrap = 50;
/*ENVIAR EM HTML*/
$mail->IsHTML(true);
/*INFORMANDO O E-MAIL DO REMETENTE*/
$mail->AddReplyTo('seuemail@seusite.com.br','seuemail@seusite.com.br');
/*LISTA DE ENDEREÇOS QUE DEVE SER MANDADO O E-MAIL*/
$mail->AddAddress($_POST['email'],'Sr(a).'.$_POST['nome']);
$msg = $html;
/*O ASSUNTO DO E-MAIL*/
$mail->Subject = "Confirmacao de Cadastro";
/*ADICIONANDO O HTML NO CORPO DO E-MAIL*/
$mail->Body = $msg;
/*DEFININDO A LINGUAGEM*/
$mail->SetLanguage("br", "phpmailer/language/");
/*ENVIANDO E RETORNANDO STATUS DO ENVIO*/
if(!$mail->Send()){
/*ERRO NO ENVIO*/
echo "Ocorreu um erro no envio do e-mail. Erro: ".$mail->ErrorInfo; //FUNCAO INFORMA O ERRO OCORRIDO //
exit;
}
/*FECHA ENVIO DE PHPMAILER*/
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Fixa de Cadastro</title>
<style>
body{font-family:Arial; font-size:12px;}
form{background:#CCCCCC; border:solid 1px; width:500px; padding:10px;}
</style>
</style>
</head>
<body>
<?
if(isset($erro)){//IF 0
foreach($erro as $erros){
echo $erros.'<br><br>';
}
?>
<a href="<?=$_SERVER['PHP_SELF']?>">voltar a ficha de cadastro</a>
<?
}else{//ELSE IF 0
if($_SERVER["REQUEST_METHOD"] != "POST" && !isset($_GET['email_confirm'])){ //IF 1
?>
Olá, seja bem vindo. Preencha o formulário abaixo e cadastre-se gratuitamente.<br><br>
<form action="<?=$_SERVER['PHP_SELF']?>?cadastrar" method="post">
<div style="float:left; width:50px;">Nome:</div><div><input type="text" name="nome" value="" maxlength="100" size="40"/></div>
<div style="float:left; width:50px;">E-mail:</div><div><input type="text" name="email" value="" maxlength="100" size="50"/></div>
<div style="width:50px; margin-top:10px;"><input type="submit" value="cadastrar"></div>
</form>
<?
}else{
if(isset($_POST['nome'])||isset($_POST['email'])||$_GET['email_confirm']){
if(isset($_GET['email_confirm'])){//IF 2
$sql_cadastros = mysql_query("Update `cadastro` Set `confir_email_user`='S' Where email_user='".$_GET['email_confirm']."'")or die(mysql_error());
if(mysql_affected_rows()>0){//IF 3
?>
Seu e-mail foi confirmado e seu cadastro foi ativado!
<?
}else{//ELSE IF 3
?>
Este e-mail não consta em nossos registros.
<?
}//FECHA IF 3
}else{ //ELSE IF 2
?>
Seu cadastro foi realizado com sucesso!<br><br> Enviamos uma confirmação de cadastro para o e-mail informado.<br><br> Clique no link contido no e-mail para ativar seu cadastro!
<?
} //FECHA IF 2
}else{
?>
Pedido inválido
<?
}
} //FECHA IF 1
}//FECHA IF 0
?>
</body>
</html>
Este código utiliza a mesma página realizar toda operação, mas ode optar utilizar mais de uma. Está ai a dica, qualquer dúvida, comente.



4 comentários:
Claudeci Boa Tarde,não estou conseguindo baixar o phpmailer, voce pode me ajudar sou novato na programação e estou afim de aprender PHP
Olá, você pode baixar o phpmailer pelo link a seguir...
http://sourceforge.net/projects/phpmailer/
Olá GOULART
Meu nome é wilson
Gostaria de saber se é possivel fazer um envio de e-mail para duas pessoas. SENDO ASSIM
QUANDO A PESSOA entrar no site e enviar, saira dois e-mail um para mim e outro para uma segunda pessoa, sem que esta segunda pessoa fique sabendo quem enviou o e-mail
Somente eu estivesse estes dados.
Se puder me ajudar vou ficar eternamente grato.
Abraços......
wilson
8650-4344 tim
wilsonmafei@ig.com.br
Fatal error: Call to undefined function Abre_Conexao() in /home/rifaele/public_html/testemail/cadastro.php on line 3
amigo como posso corrigir este erro se poder mim ajudar estou tentando mas conto com sua ajuda.
meu e-mail e hdinfoonline@uol.com.br
Postar um comentário
Leia as regras:
Todos comentários são lidos e moderados previamente.
são publicados aqueles que respeitam as regras abaixo:
-Seu comentário precisa ter relação com o assunto do post;
-Não inclua links desnecessários no conteúdo do seu comentário
-Se quiser deixar sua URL, comente usando a opção Comentar como:OpenID
OBS: comentários dos leitores não refletem as opniões do blog.