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.