sistema de newsletter

35
26 Coluna Dreamweaver - Sistema de Newsletter - Parte 1 Introdução Esse é um sistema feito em php e banco de dados mysql, ele realiza o cadastro e remoção de e-mail mediante confirmação que é enviada por e-mail. Faz o envio de e-mails em formato de texto ou HTML através de um servidor SMTP. Optei em utilizar a conexão SMTP devido a provedores como o IG não receberem mensagens vindo de uma conexão sem autenticação, e a maioria dos outros servidores classificarem como lixo eletrônico. Esse tutorial está dividido em quatro partes, sendo essa a primeira. Pré-requisito Conhecimentos básico em PHP e MYSQL Autorização para criar tabelas no banco de dados Recomendo a leitura dos artigos escrito pelo Marcelo Ariatti e Fábio Ricotta sobre o desenvolvimento do conteúdo de uma newsletter Conteúdo Vamos precisar de uma tabela para armazenar os endereços de e-mail, então vou passa a estrutura da tabela que deve se chamar newsletter para que vocês possam criar. Ou se preferir aqui vai o código de criação da tabela newsletter CREATE TABLE `newsletter` ( `id` int(11) NOT NULL auto_increment,

Upload: dcdinfo

Post on 06-Jun-2015

803 views

Category:

Documents


1 download

DESCRIPTION

Sistema de Newsletter completo

TRANSCRIPT

Page 1: sistema de newsletter

26

Coluna Dreamweaver - Sistema de Newsletter - Parte 1 Introdução

Esse é um sistema feito em php e banco de dados mysql, ele realiza o cadastro e remoção de e-mail mediante confirmação que é enviada por e-mail. Faz o envio de e-mails em formato de texto ou HTML através de um servidor SMTP. Optei em utilizar a conexão SMTP devido a provedores como o IG não receberem mensagens vindo de uma conexão sem autenticação, e a maioria dos outros servidores classificarem como lixo eletrônico.

Esse tutorial está dividido em quatro partes, sendo essa a primeira.

Pré-requisito

Conhecimentos básico em PHP e MYSQL Autorização para criar tabelas no banco de dados  Recomendo a leitura dos artigos escrito pelo Marcelo Ariatti e Fábio Ricotta sobre o desenvolvimento do conteúdo de uma newsletter

Conteúdo

Vamos precisar de uma tabela para armazenar os endereços de e-mail, então vou passa a estrutura da tabela que deve se chamar newsletter para que vocês possam criar.

Ou se preferir aqui vai o código de criação da tabela newsletter

CREATE TABLE `newsletter` (`id` int(11) NOT NULL auto_increment,`email` varchar(40) default NULL,`codigo` varchar(150) NOT NULL default '',`ativo` varchar(8) default NULL,PRIMARY KEY (`id`)

Agora vamos criar as páginas que serão utilizadas em todo o tutorial, ou seja, nas quatro partes

1. Pressione Ctrl + N 2. Selecione a guia Geral 3. Na opção Categoria selecione a opção Pagina Dinâmica 4. Na opção Pagina Dinâmica selecione a opção PHP

Page 2: sistema de newsletter

265. Clique em Criar

6. Na barra de inserir clique na guia PHP 7. Agora clique no botão Bloco de código

8. Salve com o nome de config.php, com base nesses mesmo processos crie as páginas: enviar_email.php, index.php, confirmar.php e smtp.class.php que serão utilizada nas proximas etapas

Agora vamos criar o formulário para que os usuarios possam se cadastrar e efetuar e descadastramento do seu e-mail então abra a página index.php

1. Na barra inserir clique na guia Formulários 2. Clique no botão Formulário

3. No Inspetor de propriedade coloque como ação para enviar para a página enviar_email.php

4. Em seguida clique no botão Campo de texto

Page 3: sistema de newsletter

26

5. No Inspetor de propriedade coloque o nome do campo de texto como e-mail

6. Volte para a guia Formulários da barra inserir e clique no Botão de rádio

7. No Inspetor de propriedade coloque como nome do botão opcao e o valor de assinar

8. Volter novamente para a guia Formulário da barra inserir e clique no botão rádio

9. No Inspetor de propriedade coloque como nome do botão opcao e o valor de remover

10. Clique no botão adicionar botão

Pronto o formulário ja foi criado. Você pode identificar os campos e editar este formulario desde que não altere os nomes e valores dos ampos. Se você estiver no modo de visualização do projeto mude para o modo de visualização do código. Para verificar o código gerado é igual o meu.

Page 4: sistema de newsletter

26

<form name="form1" method="post" action="enviar_email.php"><input type="text" name="e-mail"><input type="radio" name="opcao" value="assinar"><input type="radio" name="opcao" value="remover"><input type="submit" name="Submit" value="Enviar"></form>

Feche essa página e agora iremos criar a página que conterá a classe de conexão e autenticação do servidor SMTP. Devido a esse assunto não está relacionado a esse tutorial vamos apenas copiar o código e não altere nada. Essa é uma classe de autenticação SMTP que achei na internet, é muito simples porém muito funcional. Abra a página smtp.class.php e cole o código

<?class Smtp{

var $conn;var $user;var $pass;var $debug;

function Smtp($host){$this->conn = fsockopen($host, 25, $errno, $errstr, 30);$this->Put("EHLO $host");}function Auth(){$this->Put("AUTH LOGIN");$this->Put(base64_encode($this->user));$this->Put(base64_encode($this->pass));}function Send($to, $from, $subject, $msg){

$this->Auth();$this->Put("MAIL FROM: " . $from);$this->Put("RCPT TO: " . $to);$this->Put("DATA");$this->Put($this->toHeader($to, $from, $subject));$this->Put("\r\n");$this->Put($msg);$this->Put(".");$this->Close();if(isset($this->conn)){return true;}else{return false;}

Page 5: sistema de newsletter

26

}function Put($value){return fputs($this->conn, $value . "\r\n");}function toHeader($to, $from, $subject){$header = "Message-Id: <". date('YmdHis').".". md5(microtime()).".". strtoupper($from) ."> \r\n";$header .= "From: <" . $from . "> \r\n";$header .= "To: <".$to."> \r\n";$header .= "Subject: ".$subject." \r\n";$header .= "Date: ". date('D, d M Y H:i:s O') ." \r\n";$header .= "X-MSMail-Priority: Low \r\n";$header .= "MIME-Version: 1.0 \r\n";$header .= "Content-type: text/html; charset=iso-8859-1\r\n";return $header;}function Close(){$this->Put("QUIT");if($this->debug == true){while (!feof ($this->conn)) {echo fgets($this->conn) . "<br>\n";}}return fclose($this->conn);}}?>

Considerações final

Na próxima parte vamos montar a página que vai receber as informações desse formulário e executar os comandos que atenda a solicitação especificada. Qualquer comentário que vocês deixarem será bem vindo. Deixem seus pedidos de tutorias para as próximas colunas clicando aqui

Autor: Marcelo Ramos - Colunista Dreamweaver do Portal MXSTUDIO

Qualquer dúvida envie um email para [email protected] ou acesse o nosso fórum

Coluna Dreamweaver - Sistema de Newsletter Parte 2 Introdução

Page 6: sistema de newsletter

26Vamos criar as páginas para receber as informações vinda do formulário e os comandos reponsáveis em executa o cadastro ou remoção do endereço de e-mail cadastrado no banco de dados.

Pré-requisito

Ter lido a primeira parte de tutorial

Conteúdo

Abra a página config.php para fazemos a conexão com o banco de dados

Se você estiver no modo de visualização do projeto mude para o modo de visualização do código.

Vamos criar uma página para efetuar conexão com o banco de dados e depois apenas inclui-la nas outras páginas, faço isso para evitar ter que criar uma conexão em cada página.

Para fazer uma conexão com o banco de dados devemos dentro do bloco de código do PHP informar o endereço do servidor mysql ($host) depois o usuário desse servidor ($usuario), a senha do usuário ($senha) e o nome do banco de dados ($banco) depois utilizar o comando conectar do PHP para mandar se conectar (mysql_connect) e o comando selecionar para pode selecionar o banco de dados (mysql_select_db) desejado.

/* configuraçõesmysql */ $host = "localhost"; /* endereço do servidormysql */ $usuario = "usuario"; /*usuario do banco de dados */ $senha = "senha"; /* senha do banco de dados */ $banco = "banco"; /* nome do banco de dados onde estão os emails*/ mysql_connect($host,$usuario,$senha);mysql_select_db($banco);

Pronto nossa conexão com o banco de dados esta feita agora feche essa página e abra a página enviar_email.php.

A página enviar_email.php vai ser responsável por enviar os e-mails de confirmação de cadastro ou remoção do e-mail. Para isso vamos fazer a inclusão da classe smtp.class.php que vai realizar a conexão e autenticação SMTP para que os e-mails possam ser enviados ao usuário que esta fazendo a solicitação.

Se você estiver no modo de visualização do projeto mude para o modo de visualização do código.

Dentro do Bloco de código vamos fazer a inclusão da classe smtp.class.php através do comando include

Page 7: sistema de newsletter

26<?phpinclude ("smtp.class.php");?>

Com a classe já incluída agora vamos configurar a conexão SMTP, primeiro vamos iniciar  uma nova conexão (new), depois informar de um endereço do servidor (host), usuário (user) e senha (pass) e informar que será ativada a autenticação (debug). Para fazer a configuração basta apenas declarar o valor das variáveis com os seus dados.

<?phpinclude ("smtp.class.php");

/* Configuração da classe.smtp.php */ $host = "smtp.mail.yahoo.com.br"; /*host do servidor SMTP */ $smtp = new Smtp($host);$smtp->user = "usuario"; /*usuario do servidor SMTP */ $smtp->pass = "senha"; /* senha dousuario do servidor SMTP*/ $smtp->debug = true; /* ativar a autenticação SMTP*/?>

Vamos incluir também a página que vai realizar a conexão com o banco de dados, para que possa fazer inserção do e-mail e uma consulta para evitar que o mesmo e-mail tenha cadastro repetido, e na hora da remoção sabe se o e-mail esta cadastrado.

include("config.php"); /* Página que vai fazer a conexão com obd */

Agora vamos armazenar as informações que estão sendo enviado pelo formulário nas variáveis, que serão responsáveis por inserir as informações no banco de dados e enviar um e-mail de confirmação de cadastro ou remoção da assinatura da newsletter.

Como o formulário está enviando os dados por meio da função POST, ou seja, as informações inseridas no formulário estão anexadas junto ao nome do campo do formulário. Então vamos criar uma variável para o e-mail ($emaill) e declarar que seu valor será igual (=) ao campo de nome e-mail do formulário ($_POST["email"]), e o mesmo para o campo opção, ficando assim:

/* Recebendo as informações do formulario */ $email = $_POST["e-mail"];$opcao = $_POST["opcao"];

Para evitar que qualquer pessoa possa cadastrar ou remover o e-mail sabendo apenas o endereço, vamos criar um código secreto que será enviado junto com a mensagem, através desse código será localizado o e-mail e somente a pessoa que recebeu pode fazer a confirmação. Então vamos pegar o endereço de e-mail e codificar com a função md5 do PHP que utilizar o RSA DataSecurity e retorna um número hexadecimal de 32 caracteres, para que cada e-mail tenha um código diferente e único. Agora vamos criar a variável e declarar que seu valor será o e-mail codificado.

/* Criar umcodigo secreto para confirmação do e-mail */ $codigo = md5($email);

Page 8: sistema de newsletter

26Antes de fazer a inserção do e-mail no banco de dados vamos saber se foi digitado um e-mail ou se o campo esta vazio. Para isso utilizaremos o comando if e else, ou seja, vamos aplicar um teste de verdadeiro ou falso, se for verdadeiro (if) que a variável com o endereço de e-mail ($email) estiver vazia (" "), então vamos mostrar (echo) uma frase informando o erro (O campo de e-mail está vazio) e utilizar um comando para redirecionar (location.href) para a página do formulário.

if($email == ""){/* verifica se o e-mail foi digitado */echo "<script>alert('O campo de e-mail está vazio');";echo "location.href='index.php'</script>"; /* redireciona de volta aoformulario */ }else{}

Agora vamos identificar a opção escolhida pelo usuário e executar o comando para atender a solicitação.

Vamos criar mais um teste de falso ou verdadeiro, então se for verdadeiro (if) que a opção ($opção) e igual (= )à assinar (assinar) então vamos executar um comando para cadastrar o e-mail e enviar uma mensagem de confirmação, mais se essa opção não for verdadeira mais mesmo assim for verdade (elseif) que a opção ($opcao) é igual (=) a remover (remover) então vamos executar o comando de remoção e enviar uma mensagem de confimação. Mais se for falso (false) as duas opções anteriores e porque não foi selecionada nenhuma opção, então mostre (echo) uma frase informando o erro ('Você tem que selecionar Assinar ou Remover') e utilizar o comando para redirecionar (location.href) para a página do formulário.

Não se esqueça que somente serão realizados esses comandos se a variável que contem o e-mail não estiver vazia, então temos que declarar esses comandos dentro da opção false do primeiro teste que fizemos para saber se foi digitado um e-mail.

if($email == ""){/* verifica se o e-mail foi digitado */echo "<script>alert('O campo de e-mail está vazio');"; /* alerta ousuario que o campo está vazio */ echo "location.href='index.php'</script>"; /* redirecionar para que seja preenchido corretamente */ }else{ /* inicio da identificação da opção escolhida */ if($opcao == "assinar"){/* se opção for assinar então execute comando para adicionar*/ }elseif($opcao == "remover"){ /* se opção for remover então execute comando para remover */ }else{/* se a opção não foi nenhuma das duas, então houve um erro*/ echo "<script>alert('Por favor, selecione se quer ASSINAR ou REMOVER o e-mail.');";echo "location.href='index.html'</script>";}/* fim da identificação da opção escolhida */ }

Como já identificamos a opção informada pelo usuário, agora vamos começar com o caso de a opção escolhida ter sido a de assinar.

Page 9: sistema de newsletter

26Então dentro do caso de ter sido verdadeiro a opção assinar do teste de identificação da opção escolhida, vamos criar uma variável ($sql) e seu valor será um comando para realizar uma conexão com o banco de dados (mysql_query), e seleciona todas as colunas (SELECT *) da tabela (FROM) releases e filtrar (WHERE) a coluna e-mail (email) com o e-mail informado para saber se o e-mail está cadastrado. Então se for verdadeiro (if) que o e-mail já esteja cadastrado ((mysql_num_rows($sql)==1)), ou seja se a consulta no banco de dados resultou em um registro é porque o e-mail já esta cadastrada então mostre (echo) uma frase de erro (Este e-mail já está cadastrado!) e caso seja falso (else) então execute o comando para inserir o e-mail e enviar a mensagem.

if($opcao == "assinar"){/* se opção for assinar então execute comando para adicionar*/

/* verifica se o e-mail esta cadastrado */ $sql = mysql_query("SELECT * FROM newsletter WHERE email = '$email'");if(mysql_num_rows($sql)==1){ /* teste para sabe se o e-mail esta cadastrado */ echo " Este e-mail já está cadastrado!";}else{} }

Caso o e-mail não esteja cadastrado então vamos executar o comando que fará a inserção do e-mail no banco de dados, para isso vamos criar um comando para se conectar no banco de dados (mysql_query) e depois dar a instrução de inserir dados (INSERT INTO) nas colunas (id,email,codigo,ativo) com as informações das variáveis ('','$email','$codigo','n')"), como a tabela esta configurada para que a coluna id seja auto-preenchida é só deixar em branco, já a coluna emails será preenchida com o valor da variável email e a coluna código será preenchida com o nosso código secreto, e o status terá o valor de n, informando que ainda não esta ativo o e-mail, mais para garantir uma segurança maior vamos codificar novamente o nosso código secreto, só que agora com a função sha1 que nos retornar um número hexadecimal de 40 caracteres, garantindo assim uma maior segurança.

if($opcao == "assinar"){/* se opção for assinar então execute comando para adicionar*/ $sql = mysql_query("SELECT * FROM newsletter WHERE email = '$email'");if(mysql_num_rows($sql)==1){/* teste para sabe se o e-mail esta cadastrado */ echo " Este e-mail já está cadastrado!";}else{

/* se o e-mail não estiver cadatrado */$codigo = sha1($codigo); /* código secreto */ mysql_query("INSERT INTO  newsletter (id,email,codigo,ativo) VALUES('','$email','$codigo','n')") or die(mysql_error()); /* inseri a informações nobd */ } }

Com o e-mail já inserido no banco de dados, agora vamos enviar uma mensagem para o e-mail cadastrado, informando o cadastro e solicitando que seja clicado em um link para que seja ativado. Esse link vai conte uma variável de nome código e seu valor será o código secreto (codigo=$codigo) que vai ser responsável por localizar o e-mail e mudar seu status de n que significa não ativo, para s

Page 10: sistema de newsletter

26que significa ativo, e mais uma variável (&) de nome opção que terá o valor da opção escolhida pelo usuário, que nesse caso ele deseja adicina (?opcao=adiciona).

Para que a mensagem possa ser enviada ela deve conte um remetente ($from) que é o seu e-mail, um destinario ($to) que vai se o e-mail cadastrado, um assunto ($subject), e a mensagem ($msg), e depois devemos chamar a classe SMTP e mandar enviar, e também vamos mostrar (echo) uma frase na tela informando que o cadastro foi realizado com sucesso e foi enviado uma mensagem de confirmação para o e-mail cadastrado.

if($opcao == "assinar"){/* se opção for assinar então execute comando para adicionar*/ $sql = mysql_query("SELECT * FROM newsletter WHERE email = '$email'");if(mysql_num_rows($sql)==1){echo " Este e-mail já está cadastrado!";}else{$codigo = sha1($codigo);mysql_query("INSERT INTO newsletter (id,email,codigo,ativo) VALUES('','$email','$codigo','n')") or die(mysql_error());

/* envia uma mensagem solicitando a ativação */ $from= "[email protected]"; /* seu e-mail */ $to = $email; /* o e-mail cadastrado*/ $subject = "Confirmar cadastro"; /* assunto da mensagem */ $msg = "Você está recebendo esta mensagem porque alguém adicionou esse e-mail<br>";$msg .= "Para confirma clique no link abaixo"; $msg .= "<a href='http://seusite.com/confirmar.php?opcao=adiciona&codigo=$codigo' target=_blank>Clique aqui para confirmar </a>"; $smtp->Send($to, $from, $subject, $msg);/* faz o envio da mensagem */

/* mostra mensagem na tela */ echo "<script>alert('Um e-mail de confirmação agora foi enviado para o $email.');";echo "location.href='index.html'</script>";

} }/* fim do comando para assinar */

Dentro do caso de ter sido verdadeiro a opção remover do teste de identificação da opção escolhida, vamos criar uma variável ($sql) e seu valor será um comando para realizar uma conexão com o banco de dados (mysql_query), e seleciona todas a coluna (SELECT *) da tabela (FROM) releases e filtrar (WHERE) a coluna e-mail (email) com o e-mail informado para saber se o e-mail está cadastrado, ou seja, para remover um e-mail é preciso saber primeiro se o e-mail es cadastrado. E se for verdadeiro (if) que a consulta no banco de dados resultou em nenhum registro e porque não tem nenhum e-mail no banco de dados (mysql_num_rows($sql)==0), então vai mostrar (echo) uma frase de erro (" E-mail não cadastrado em nosso sistema!"), mais se for falso (else) essa verificação e o e-mail está realmente cadastrado, então vamos mandar enviar uma mensagem ($msg) com o link contendo uma variável de nome código com o seu valor sendo o código secreto (codigo=$codigo) e mais uma variável (&) de nome opção com o seu valor sendo a opção de remover (?opcao=remover) para ($to) o e-mail cadastrado ($email), com o assunto ($subject) de cancelamento de conta, e depois chamar a classe smtp e mandar enviar a mensagem e mostrar uma mensagem na tela dizendo que seu pedido foi processado e para que possa efetuar o cancelamento é preciso fazer uma confirmação para saber se o e-

Page 11: sistema de newsletter

26mail é dele mesmo. Mais antes como tinha codificado o código secreto com a função sha1 para o cadastro, teremos que codificar para ser igual ao armazenado no banco de dados.

elseif($opcao == "remover"){ /* se opção for remover então execute comando para remover */ $sql =mysql_query("SELECT * FROM newsletter WHERE email = '$email'");if(mysql_num_rows($sql)==0){echo " E-mail não cadastrado em nosso sistema!";}else{

/* comando pra remover o e-mail */ $to = $email;$from = "[email protected]";$codigo = sha1($codigo); /* gerar o codigo secreto */ $subject = "Confirmar Cancelamento de Conta";$msg = "Você está recebendo esta mensagem porque alguém tentou remover esse e-mail ";$msg .= "Clique no link abaixo para confirmar ";$msg .= "<a href='http://seusite.com/confirmar.php?opcao=remove&codigo=$codigo' target=_blank>";$msg .= "Clique aqui </a>";$smtp->Send($to, $from, $subject, $msg);echo "<script>alert('Um e-mail de confirmação foi enviado.');";echo "location.href='index.html'</script>";}}/* fim do comando para remover */

Esta página está pronta é o código deve está assim:

<?phpinclude ("smtp.class.php");

/*Configuração daclasse.smtp.php */ $host = "smtp.mail.yahoo.com.br"; /* host doservidor SMTP */ $smtp = new Smtp($host);$smtp->user = "usuario"; /*usuario doservidor SMTP */ $smtp->pass = "senha"; /*senha dousuario do servidor SMTP*/ $smtp->debug = true; /*ativar aautenticação SMTP*/

include("config.php"); /* Página que vai fazer a conexão com obd */

/* Recebendo as informações doformulario */ $email = $_POST["e-mail"];$opcao = $_POST["opcao"];

/* Criar umcodigo secreto para confirmação do e-mail */ $codigo = md5($email);/* verifica se o e-mail foi digitado */if($email == ""){/* verifica se o e-mail foi digitado */echo "<script>alert('O campo de e-mail está vazio');"; /* alerta ousuario que o campo está vazio */ echo "location.href='index.php'</script>"; /* redirecionar para que seja preenchido corretamente */

Page 12: sistema de newsletter

26}else{ /* inicio da identificação da opção escolhida */ if($opcao == "assinar"){/* se opção for assinar então execute comando para adicionar*/ $sql =mysql_query("SELECT * FROM newsletter WHERE email = '$email'");if(mysql_num_rows($sql)==1){echo " Este e-mail já está cadastrado!";}else{$codigo = sha1($codigo);mysql_query("INSERT INTO newsletter (id,email,codigo,ativo) VALUES('','$email','$codigo','n')") or die(mysql_error());$from= "[email protected]"; /* seu e-mail */ $to = $email; /* o e-mail cadastrado*/ $subject = "Confirmar cadastro"; /* assunto da mensagem */ $msg = "Você está recebendo esta mensagem porque alguém adicionou esse e-mail<br>";$msg .= "Para confirma clique no link abaixo"; $msg .= "<a href='http://seusite.com/confirmar.php?opcao=adiciona&codigo=$codigo' target=_blank>Clique aqui para confirmar </a>"; $smtp->Send($to, $from, $subject, $msg);echo "O e-mail <b>$email</b> foi cadastrado com sucesso!";echo "<br>";echo "Um e-mail de confirmação agora foi enviado para o mesmo.";} }/* fim do comando para adicionar */ elseif($opcao == "remover"){ /* se opção for remover então execute comando para remover */ $sql =mysql_query("SELECT * FROM newsletter WHERE email = '$email'");if(mysql_num_rows($sql)==0){echo " E-mail não cadastrado em nosso sistema!";}else{$to = $email;$from = "[email protected]";$codigo = sha1($codigo);$subject = "Confirmar Cancelamento de Conta";$msg = "Você está recebendo esta mensagem porque alguém tentou remover esse e-mail ";$msg .= "Clique no link abaixo para confirmar ";$msg .= "<a href='http://seusite.com/confirmar.php?opcao=remove&codigo=$codigo' target=_blank>";$msg .= "Clique aqui </a>";$smtp->Send($to, $from, $subject, $msg);echo "<script>alert('Um e-mail de confirmação foi enviado.');";echo "location.href='index.html'</script>";}}/* fim do comando para remover */ else{/* se a opção não foi nenhuma das duas, então houve um erro*/ echo "<script>alert('Por favor, selecione se quer ASSINAR ou REMOVER o e-mail.');";echo "location.href='index.html'</script>";}

Page 13: sistema de newsletter

26/* fim da identificação da opção escolhida */ }?>

Agora vamos abrir a página comfirmar.php que será reponsavel por fazer a confirmação do e-mail, efetuar a remoção e e mudar o statutd do e-mail. Então vamos fazer a inclusão da página de conexão com o banco de dado para isso:

Se você estiver no modo de visualização do projeto mude para o modo de visualização do código.

Na Barra inserir do dreamweaver clique na guia PHP e clique no botão Bloco de código

Vamos fazer a inclusão da página responsavel pela conexão com o banco de dados utilizando a função include

include("config.php");

Vamos armazenar as informações que estão vindo através do link que esta na mensagem de confirmação enviada. Como as informações estão anexadas no link junto com o nome da variável. Então vamos criar a variável opção ($opcao) e declara que seu valor está no link ($_GET) junto com a opção escolhida ($_GET["opcao"]) e o mesmo para o código secreto.

/* recebendo as informações do link */ $opcao = $_GET["opcao"];$codigo = $_GET["codigo"];

Agora vamos aplicar um teste de verdadeiro ou falso para identificar qual foi a opção escolhida pelo usuário. Se for verdadeiro (if) que a opção é igual a adiciona ($opcao == "adiciona") então execute o comando para ativar o e-mail, mais se esse teste for falso mais mesmo assim for verdadeiro (elseif) que a opção e remover ($opcao == "remove") então execute o comando de remoção do e-mail, mais se for falso os dois teste anteriores e porque não foi selecionada nenhuma opção então mostre (echo) o comando para redirecionar (location.href) de volta ao formulário.

/* inicio da identificação da opção escolhida */ if($opcao == "adiciona"){ /* se a opção for adicionar então execute comando para ativar o e-mail */ }elseif($opcao == "remove"){/* se a opção for remover então execute comando para remover */ }else{echo "<script>alert('Por favor, selecione se quer ASSINAR ou REMOVER o e-mail.');";echo "location.href='index.html'</script>";

Page 14: sistema de newsletter

26}/* fim da identificação da opção escolhida */

Vamos começar com o caso de a opção escolhida ter sido a de adiciona. Lembrando que é através do código secreto que vamos localizar o e-mail e saber se esta cadastrado.

Então dentro do caso de ter sido verdadeiro a opção adiciona vamos executar o comando que fará a atualização do status do e-mail de n para s no banco de dados, para isso vamos criar uma variável ($sql) e seu valor será um comando para fazer uma conexão com o banco de dados (mysql_query) e depois dar a instrução de selecionar todas colunas (SELECT *) da tabela (FROM) newsletter e filtrar (WHERE) a coluna codigo com o valor igual (=) ao código, para pode localizar o e-mail e sabe se é verdadeiro.

Para saber se o e-mail está cadastrado no banco de dados, vamos aplicar um teste. Se for verdadeiro (if) que o código secreto foi localizado no banco de dados (mysql_num_rows($sql)==1), ou seja, a consulta efetuada resultou em um registro e porque o e-mail esta cadastrado, então conecte-se no banco de dados (mysql_query) e atualize (UPDATE) na tabela newsletter a (SET) coluna status com o valor de s, e depois mostre (echo) uma frase informando que foi ativado o e-mail (E-mail ativado com sucesso) e mostre (echo) o comando de redirecionamento (location.href) para ir para a pagina principal do site. Mais se for falso o código secreto (else) então mostre (echo) a frase de erro (E-mail não encontrado no banco de dados) e mostre (echo) o comando de redirecionamento (location.href) para voltar ao formulário.

/* inicio do comando para adiciona */ $sql =mysql_query("SELECT * FROM newsletter WHERE codigo = '$codigo'");if(mysql_num_rows($sql)==1){mysql_query("UPDATE newsletter SET ativo = 's' WHERE codigo = '$codigo'");echo "<script>alert('E-mail cadastrado com sucesso!');";echo "location.href='/index.php'</script>";}else{echo "<script>alert('E-mail não encontrado no banco de dados.');";echo "location.href='/index.php'</script>";} /* fim do comando para adiciona */

Se a opção não foi adiciona e foi remover então vamos criar uma variável ($sql) e seu valor será um comando para fazer uma conexão com o banco de dados (mysql_query) e depois dar a instrução de selecionar todas colunas (SELECT *) da tabela (FROM) newsletter e filtrar (WHERE) a coluna codigo com o valor igual (=) ao código secreto, para pode localizar o e-mail e sabe se é verdadeiro. E se for verdadeiro (if) que o código secreto foi localizado no banco de dados (mysql_num_rows($sql)==1) então se conecte com o banco de dados (mysql_query) e delete (DELETE) na (FROM) tabela newsletter o e-mail a qual o codigo informado pertença (WHERE codigo = '$codigo') e mostre (echo) uma frase informando o cancelamento (E-mail apagado com sucesso) e mostre (echo) o comando para redirecionar (location.href) para a pagina principal do site. Mais se o código estiver errado então mostre (echo) uma frase informando o erro (E-mail não encontrado no banco de dados) e mostre (echo) o comando para redirecionar (location.href) para o formulário.

/* inicio do comando para remove */$sql =mysql_query("SELECT * FROM newsletter WHERE codigo = '$codigo'");

Page 15: sistema de newsletter

26if(mysql_num_rows($sql)==1){mysql_query("DELETE FROM newsletter WHERE codigo = '$codigo'");echo "<script>alert('E-mail apagado com sucesso!');";echo "location.href='index.php'</script>";}else{echo "<script>alert('E-mail não encontrado no banco de dados.');";echo "location.href='/index.php'</script>";}/* fim do comando para remove */

Codigo final da página comfimar.php

<?phpinclude("config.php");$opcao = $_GET["opcao"];$codigo = $_GET["codigo"];/* inicio da identificação da opção escolhida */ if($opcao == "adiciona"){ /* inicio do comando para adiciona */ $sql =mysql_query("SELECT * FROM newsletter WHERE codigo = '$codigo'");if(mysql_num_rows($sql)==1){mysql_query("UPDATE newsletter SET ativo = 's' WHERE codigo = '$codigo'");echo "<script>alert('E-mail cadastrado com sucesso! Agora já faz parte de nossa lista.');";echo "location.href='/index.php'</script>";}else{echo "<script>alert('E-mail não encontrado no banco de dados.');";echo "location.href='/index.php'</script>";}} /* fim do comando para adiciona */ elseif($opcao == "remove"){/* inicio do comando para remove */$sql =mysql_query("SELECT * FROM newsletter WHERE codigo = '$codigo'");if(mysql_num_rows($sql)==1){mysql_query("DELETE FROM newsletter WHERE codigo = '$codigo'");echo "<script>alert('E-mail apagado com sucesso!');";echo "location.href='index.php'</script>";}else{echo "<script>alert('E-mail não encontrado no banco de dados.');";echo "location.href='/index.php'</script>";}}/* fim do comando para remove */else{echo "<script>alert('Por favor, selecione se quer ASSINAR ou REMOVER o e-mail.');";echo "location.href='index.html'</script>";}

Page 16: sistema de newsletter

26/* fim da identificação da opção escolhida */ ?>

Consideraçôes finais

Finalizamos a primeira fase desse tutorial que foi o cadastro e remoção dos e-mails, nas próximas duas partes vamos aprender como enviar a newsletter para os e-mails que estão cadastrados no banco de dados, você já pode publicar no seu site para pode ir cadastrando os e-mails. Eu recomendo a leitura dos artigos escritos pelo Marcelo Ariatti e Fábio Ricotta sobre o desenvolvimento do conteúdo de uma newsletter. Qualquer comentário que vocês deixarem será bem vindo. Deixem seus pedidos de tutorias para as próximas colunas clicando aqui

Autor: Marcelo Souza Ramos - Colunista Dreamweaver do Portal MXSTUDIO

Qualquer dúvida envie um email para [email protected] ou acesse o nosso fórum

Coluna Dreamweaver - Sistema de Newsletter - Parte 3 Introdução

Nessa penúltima parte vamos criar o formulário para envio da newsletter, que vai ter uma lista com todos os endereços de e-mails individuais e uma opção para enviar à todos simultaneamente. Para enviar e-mail em HTML basta você editar o código em seu editor e colar no campo de mensagem

Pré-requisito

Conhecimentos básico em PHP e MYSQL Leitura das partes anteriores

Conteúdo

Vamos criar as páginas que serão utilizada nesta parte e na próxima parte.

1. Pressione Ctrl + N 2. Selecione a guia Geral 3. Na opção Categoria selecione a opção Pagina Dinâmica 4. Na opção Pagina Dinâmica selecione a opção PHP 5. Clique em Criar

Page 17: sistema de newsletter

26

6. Na barra de inserir clique na guia PHP 7. Agora clique no botão Bloco de código

8. Salve com o nome de index.php, com base nesses mesmo processos crie a página enviar_newsletter.php que será utilizada na proxima parte

Agora vamos abrir a página index.php e criar o formulário para envio da newsletter.

1. Na barra inserir clique na guia Formulários 2. Clique no botão Formulário

3. No Inspetor de propriedade coloque como ação enviar para a página enviar_newsletter.php, e verifique se o método está como POST

4. Agora vamos criar a lista com a opção de envio para todos os e-mails simultaneamente, e somente no final e que vamos acrescentar os endereços de e-mail individuais. Então clique no botão Menu de lista, para adicionar uma lista.

Page 18: sistema de newsletter

26

5. No Inspetor de propriedade coloque como nome do Lista/Menu msg_para 6. Clique no botão Valores da Lista

7. Na caixa de configuração dos Valores da Lista clique no Identificador do Item e digite todos e no Valor também digite todos

8. Clique em OK

9. Vamos adicionar um campo para preenchimento do assunto da mensagem, clique no botão Campo de texto para adicionar o campo de texto.

10. No Inspetor de propriedade coloque o nome do campo de texto como msg_assunto

11. Agora vamos adicionar uma caixa de texto, onde será escrita a mensagem. Clique no botão Área de texto

12. No Inspetor de propriedade coloque o nome da Área de texto como mensagem

Page 19: sistema de newsletter

26

13. Clique no botão adicionar botão

Pronto o formulário ja foi criado, mais ainda não está pronto. Se você estiver no modo de visualização do projeto mude para o modo de visualização do código. e verifique se o código gerado é igual.

<form name="form1" method="post" action="enviar_newsletter.php"><select name="select" size="1"><option value="todos">todos</option></select><input name="msg_assunto" type="text" id="msg_assunto"><textarea name="mensagem" id="mensagem"></textarea><input type="submit" name="Submit" value="Enviar">< /form>

Agora vamos fazer com que na lista de opções seja mostrado todos os endereços de e-mail que estão no banco de dados, para que você possa enviar a mensagem para destinarios específicos.

Então vamos criar uma conexão com banco de dados para buscar esses e-mail e depois através do comando de repetição while mostrar todos os e-mails que estão cadastrado. Mais para organizar todos essse endereços de e-mails de uma forma ordenada vamos utilizar uma array, para fazer a array vamos utilizar o comando mysql_fetch_array que coloca o resultado da consulta do banco de dados numa array automaticamente, e com o comando while imprimir todo o conteúdo na lista de opções.

Então vamos incluir a página config.php que contém a configuração para conexão com o banco de dados e criar uma variável responsável pela consulta no banco de dados ($sql) e declarar que seu valor será (=) um comando para se conectar no banco de dados (mysql_query) e selecionar todas as colunas (SELECT *) da tabela (FROM) releases e filtrar (WHERE) apenas com os e-mail ativos (ativo = 's').

Depois vamos iniciar a área de repetição com o comando while que vai repetir todos os endereços de e-mails, mais para isso devemos criar uma variável para armazenar esses endereços ($lista) e declarar que seu valor será o comando mysql_fetch_array que coloca o resultado da consulta ($sql) em uma array. Logo em seguida vamos criar mais uma variável que vai mostrar o endereço de e-mail ($email) e declarar que seu valor será igual (=) a um e-mail que está na variável ($lista["email"]) que armazena a lista com todos os endereços, e conforme o comando while for repetindo os dados ele vai mostrar um endereço de e-mail diferente em cada loop até que todos os e-mail sejam mostrado.

Page 20: sistema de newsletter

26Dentro da tag select e após a tag </imput> vamos adicionar um Bloco de código para PHP. Na barra inserir clique na guia PHP e clique no botão Bloco de código, e dentro do bloco e adicionar os comandos.

<form name="form1" method="post" action="enviar_newsletter.php"><select name="select" size="1"><option value="todos">todos</option>

/* Adicionar todos os endereços de e-mail na lista */ <?phpinclude("config.php");$sql = mysql_query("SELECT * FROM newsletter WHERE ativo = 's' AND tipo = 'noticia'");while($lista = mysql_fetch_array($sql)){$email = $lista["email"];?>

</select><input name="msg_assunto" type="text" id="msg_assunto"><textarea name="mensagem" id="mensagem"></textarea><input type="submit" name="Submit" value="Enviar">< /form>

Agora fora do bloco de código para php vamos criar mais um tag imput com o valor do item sendo a variável que contém o endereço de e-mail e seu valor também sendo a variável que armazenar o e-mail.

<form name="form1" method="post" action="enviar_newsletter.php"><select name="select" size="1"><option value="todos">todos</option>/* Adicionar todos os endereços de e-mail na lista */ <?phpinclude("config.php");$sql = mysql_query("SELECT * FROM newsletter WHERE ativo = 's' AND tipo = 'noticia'");while($lista = mysql_fetch_array($sql)){$email = $lista["email"];?>

/* Imprime todos os e-mail na lista */ <option value="<?=$email?>"><?=$email?></option>

</select><input name="msg_assunto" type="text" id="msg_assunto"><textarea name="mensagem" id="mensagem"></textarea><input type="submit" name="Submit" value="Enviar">< /form>

Page 21: sistema de newsletter

26E para finalizar vamos depois da tag imput que acabamos de criar fechar a área de repetição

<form name="form1" method="post" action="enviar_newsletter.php"><select name="select" size="1"><option value="todos">todos</option>/* Adicionar todos os endereços de e-mail na lista */ <?phpinclude("config.php");$sql = mysql_query("SELECT * FROM newsletter WHERE ativo = 's' AND tipo = 'noticia'");while($lista = mysql_fetch_array($sql)){$email = $lista["email"];?>/* Imprime todos os e-mail na lista */ <option value="<?=$email?>"><?=$email?></option>

/* Fim da area de repetição */ <?php } ?>

</select><input name="msg_assunto" type="text" id="msg_assunto"><textarea name="mensagem" id="mensagem"></textarea><input type="submit" name="Submit" value="Enviar">< /form>

Considerações Finais

Na próxima parte que é a ultima  vamos criar os comando que farão o envio da newsletter. Qualquer comentário que vocês deixarem será bem vindo. Deixem seus pedidos de tutorias para as próximas colunas clicando aqui

Autor: Marcelo Souza Ramos - Colunista Dreamweaver do Portal MXSTUDIO

Qualquer dúvida envie um email para [email protected] ou acesse o nosso fórum

Coluna Dreamweaver - Sistema de Newsletter - Parte Final Introdução

Nessa ultima parte vamos criar os comandos que executarão o envio da newsletter

Pré-requisito

Conhecimentos básico em PHP e MYSQL Leitura das partes anteriores

Page 22: sistema de newsletter

26

Conteúdo

Abrar a página enviar_newsletter.php

A página enviar_newsletter.php vai ser responsável por enviar a newsletter para todos os e-mail cadastrado no banco de dado, ou somente para um determinado e-mail que você deseja. Para isso vamos fazer a inclusão da classe smtp.class.php que vai realizar a conexão e autenticação SMTP para que os e-mails possam ser enviados.

Se você estiver no modo de visualização do projeto mude para o modo de visualização do código.

Dentro do Bloco de código vamos fazer a inclusão da classe smtp.class.php através do comando include

<?phpinclude ("smtp.class.php");?>

Com a classe já incluída agora vamos configurar a conexão SMTP que necessita de um endereço de servidor (host), usuário (user), senha (pass) e informar que será ativada a autenticação (debug) para que possa enviar os e-mails corretamente. Para fazer a configuração basta apenas declarar o valor das variáveis utilizada na classe com os seus dados.

<?phpinclude ("smtp.class.php");

/* Configuração da classe.smtp.php */ $host = "smtp.mail.yahoo.com.br"; /*host do servidor SMTP */ $smtp = new Smtp($host);$smtp->user = "usuario"; /*usuario do servidor SMTP */ $smtp->pass = "senha"; /* senha dousuario do servidor SMTP*/ $smtp->debug =true; /* ativar a autenticação SMTP*/?>

Vamos incluir também através do comando include, a página que vai realizar a conexão com o banco de dados para que possa se consultados os endereços de e-mail cadastrado que vão se enviados.

include("config.php"); /* Página que vai fazer a conexão com obd */

Agora vamos receber as informações que estão sendo enviadas pelo formulário através método POST, ou seja, as informações inseridas no formulário estão anexadas junto ao nome do campo do formulário. Então vamos criar variáveis para armazenar essas informações, começando pela variável para armazenar o destinario ($to) e declarar que seu valor será igual (=) ao campo de nome msg_para ($_POST["msg_para"]) do formulário e o mesmo para o assunto e mensagem.

Page 23: sistema de newsletter

26/* recebendo as informações do formulário */ $to = $_POST["msg_para"];$subject = $_POST["msg_assunto"];$msg = $_POST["mensagem"];

Agora vamos identificar para qual destinario será enviada a mensagem, se será enviado para um destinario especifico ou será enviada para todos os e-mails cadastrados e ativos do banco de dados. Para isso vamos aplicar um teste de verdadeiro ou falso na variável que contém o destinario da mensagem ($to), então se for verdadeiro (if) que o destinario e todos ($to == "todos") então execute comando para enviar mensagem à todos os endereços de e-mails no banco de dados, mais se for falso (else) e porque então o destinario será um único endereço de e-mail especifico.

if($to == "todos"){ /* envia para todos */ }else{ /* envia para um e-mail especifico */ }

Dentro do caso de ter sido verdadeiro que a mensagem será enviado para todos os endereços de e-mails, vamos criar uma variável ($sql) com o seu valor sendo um comando para se conectar (mysql_query) e realizar uma consulta no banco de dados e selecionar todas as colunas (SELECT *) da tabela releases (FROM releases) e filtrá-la com todos os e-mail que estão ativos (WHERE ativo='s') para que seja extraído os endereços de e-mail que vão ser enviados, também vamos criar uma variável para saber a quantidade de e-mail nessa consulta ($total) e que devem ser enviados, para isso vamos utilizar o comando para contar os registro (mysql_num_rows) da consulta ($sql), e vamos criar outra variável com o valor de zero para pode contar os e-mail que foram enviados corretamente ($enviados) e outra para contar os e-mail que não foram enviados ($falhado).

$sql = mysql_query("SELECT * FROM newsletter WHERE ativo = 's'");$total = mysql_num_rows($sql); /* quantidade de registros */ $enviados = 0; /* conta os e-mails enviados */ $falhado = 0; /* conta os e-mail que não foram enviado */

Para buscar todos os e-mails no banco de dados e enviar um de cada vez vamos dar inicio a região de loop, utilizando o comando de repetição chamado while. O comando while será associado a uma variável que vamos criar chamada lista ($lista) com o seu valor sendo igual (=) a uma array com todos os e-mail cadastrado e ativo, para criar esse array vamos utilizar a função mysql_fetch_array que vai pegar todos os endereços de e-mail da consulta feita no banco de dados e colocar em uma array para o comando while pegar um e-mail enviar a mensagem, depois pegar outro e-mail e enviar a mensagem e assim consequentemente até que todos os e-mail tenham sido enviados.

/* inicio do loop */ while($lista = mysql_fetch_array($sql)) /*coloca o resultado da consulta do banco de dados numa ARRAY e com o while imprime todo o conteudo da Array.*/{

Agora dentro da região de loop vamos chamar e configurar a classe smtp igual fizemos no inicio e vamos criar a variável que vai contér o destinario, ou seja, o endereço de e-mail de quem vai receber a mensagem, como os e-mails está armazenado na variável lista ($lista), o valor da variável destinario ($to) se declarado como sendo um e-mail que esta na nossa lista ($lista["email"]), esse endereço de e-mail será mudado automaticamente cada vez que for executado um loop, e depois vamos criar a

Page 24: sistema de newsletter

26

variável remetente ($from) com o seu valor sendo o seu e-mail.

$host = "smtp.mail.yahoo.com.br"; /*host do servidor SMTP */ $smtp = new Smtp($host);$smtp->user = "usuario"; /*usuario do servidor SMTP */ $smtp->pass = "senha"; /* senha dousuario do servidor SMTP*/ $smtp->debug =true; /* ativar a autenticação SMTP*/$to = $lista["email"];$from = "[email protected]";

Ainda dentro da região de loop vamos chamar a classe smtp e mandar enviar a mensagem, mais para sabe se a mensagem foi enviada ou não vamos aplicar um teste de verdadeiro ou falso, então se for verdadeiro (if) que a classe smtp enviou o e-mail ($smtp->Send($to, $from, $subject, $msg )) então some mais um na varivável que esta contando as mensagem enviadas ($enviados = $enviados + 1) e vamos criar mais uma variável que vai armazenar uma mensagem ($mensagem) informado que foi enviado corretamente (Enviado Corretamente !), mais se esse teste for falso (else) então vamos somar mais um na variável que está contando os e-mail não enviados ($falhados = $falhados +1) e criar uma variável que vai armazenar uma mensagem ($mensagem) informado que não foi enviada a mensagem (E-mail não enviado).

if($smtp->Send($to, $from, $subject, $msg )) {$enviados = $enviados + 1;$mensagem = "Enviado Corretamente!";}else{$falhados = $falhados +1;$mensagem = "E-mail não enviado";}

Continuando ainda dentro da região de loop vamos criar um relatório parcial do envio de cada mensagem para pode saber se o e-mail foi enviado ou não, então vamos identificar para quem foi enviada a mensagem e através do teste de verdadeiro ou falso que criamos anteriormente vamos sabe a situação do e-mail. Como ainda estamos dentro da região de repetição essa mensagem será mostrada a cada e-mail enviado.

echo "Enviado para $to <br> Status: $mensagem<br>"

Agora vamos fechar a região de repetição e criar uma relatório geral informando o total de e-mails que deveriam se enviados ($total), o total que foi enviado ($enviados) e o total que não foi enviado ($falhado), isso é possível graças as variáveis que criarmos para conta os e-mail

/* fim do loop */ } echo "E-mail que deveriam ser enviados: $total e-mails<br>"; echo "E-mail enviados: $enviados e-mails <br>"; echo "E-mail não enviados: $falhado <br>";

Agora vamos trabalhar no caso do e-mail ter sido um especifico, ou seja, no caso de ter sido falso o teste para o destinario ter sido para todos. Então como o e-mail ja está armazenado na variável ($to)

Page 25: sistema de newsletter

26

que criamos no inicio e a classe smtp também ja está configurada, vamos apenas criar a variável ($from) remetente e declarar que seu valor vai ser o seu e-mail, e mandar a classe SMTP enviar a mensagem, mais antes de mandar vamos aplicar um teste de verdadeiro ou falso para saber se a mensagem foi enviada, igual fizemos anteriormente

Entao se for verdadeiro (if) que a classe smtp enviou o e-mail ($smtp->Send($to, $from, $subject, $msg )) então vamos criar uma variável que vai armazenar uma mensagem ($mensagem) informado que foi enviado corretamente (Enviado Corretamente !), mais se esse teste for falso (else) então vamos criar uma variável que vai armazenar uma mensagem ($mensagem) informado que não foi enviada a mensagem (E-mail não enviado) e vamos criar um relatório do envio da mensagem para pode saber se o e-mail foi enviado ou não, então vamos identificar para quem foi enviada a mensagem e através do teste de verdadeiro ou falso que criamos anteriormente vamos sabe o status do e-mail

else{$from = "[email protected]"; if($smtp->Send($to, $from, $subject, $msg)){$mensagem = "Enviado Corretamente!";}else{$mensagem = "E-mail não enviado";}echo "Enviado para $to <br> Status: $mensagem<br>" }

Código Final:

<?phpinclude ("smtp.class.php");

/* Configuração da classe.smtp.php */ $host = "smtp.mail.yahoo.com.br"; /*host do servidor SMTP */ $smtp = new Smtp($host);$smtp->user = "usuario"; /*usuario do servidor SMTP */ $smtp->pass = "senha"; /* senha dousuario do servidor SMTP*/ $smtp->debug =true; /* ativar a autenticação SMTP*/

include("config.php"); /* Página que vai fazer a conexão com obd */

/* recebendo as informações do formulário */ $to = $_POST["msg_para"];$subject = $_POST["msg_assunto"];$msg = $_POST["mensagem"];

if($to == "todos"){$sql = mysql_query("SELECT * FROM newsletter WHERE ativo = 's'");$total = mysql_num_rows($sql); /* quantidade de registros */ $enviados = 0; /* conta os e-mails enviados */ $falhado = 0; /* conta os e-mail que não foram enviado */

Page 26: sistema de newsletter

26

/* inicio do loop */ while($lista = mysql_fetch_array($sql)) /*coloca o resultado da consulta do banco de dados numa ARRAY e com o while imprime todo o conteudo da Array.*/{ $host = "smtp.mail.yahoo.com.br"; /*host do servidor SMTP */ $smtp = new Smtp($host);$smtp->user = "usuario"; /*usuario do servidor SMTP */ $smtp->pass = "senha"; /* senha dousuario do servidor SMTP*/ $smtp->debug = true; /* ativar a autenticação SMTP*/$to = $lista["email"];$from = "[email protected]"; if($smtp->Send($to, $from, $subject, $msg )) {$enviados = $enviados + 1;$mensagem = "Enviado Corretamente!";}else{$falhados = $falhados +1;$mensagem = "E-mail não enviado";} echo "Enviado para $to <br> Status: $mensagem<br>";} /* fim do loop */ echo "E-mail que deveriam ser enviados: $total e-mails<br>"; echo "E-mail enviados: $enviados e-mails <br>"; echo "E-mail não enviados: $falhado <br>";}else{$from = "[email protected]"; if($smtp->Send($to, $from, $subject, $msg)){$mensagem = "Enviado Corretamente!";}else{$mensagem = "E-mail não enviado";}echo "Enviado para $to <br> Status: $mensagem<br>";}?>

Considerações finais

Chegamos ao final da criação de uma newsletter e, eu recebi vários e-mails com duvidas e problemas que encontraram no decorrer desse tutorial e espero te ajudado a todos, qualquer problema me avise por e-mail que eu respondo a todos dentro do meu tempo disponível, Não esqueça de fazer a leitura dos artigos escritos pelo Marcelo Ariatti e Fábio Ricotta sobre o desenvolvimento do conteúdo de uma newsletter. Qualquer comentário que vocês deixarem será bem vindo. Deixem seus pedidos de tutorias para as próximas colunas clicando aqui

Page 27: sistema de newsletter

26

Autor: Marcelo Souza Ramos - Colunista Dreamweaver do Portal MXSTUDIO

Qualquer dúvida envie um email para [email protected] ou acesse o nosso fórum