MXStudio » Dreamweaver » Sistema de Newsletter – Parte 1

Sistema de Newsletter – Parte 1


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.
Estrutura da tabela
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
  5. Clique em Criar
    Criar Página
  6. Na barra de inserir clique na guia PHP
  7. Agora clique no botão Bloco de código

    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

    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

  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.

<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;
}
}
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 ramos.marcelosouza@gmail.com ou acesse o nosso fórum


6 Comments to Sistema de Newsletter – Parte 1

  1. kennedy's Gravatar kennedy
    Agosto 26, 2008 at 2:44 am | Permalink

    Poxa muito bom o tutorial, li ele todo e fiz tudo que foi escrito mais infelizmente meu script ainda tem alguns erros… seria pedir muito se os arquivos fossem enviados pro meu e-mail ? kennedy.rj@hotmail.com ou que alguem cometesse a bondade de me ajudar a concertar !?
    vlw

  2. Junho 8, 2009 at 12:18 pm | Permalink

    Bom!

    Vou tentar fazer depois comento melhor. Ok?

  3. Maria José Costa's Gravatar Maria José Costa
    Agosto 12, 2009 at 6:26 am | Permalink

    Estou querendo montar uma newletter, mas meus conhecimentos no assunto são poucos ou quase nenhum, sou professora e gostaria de divulgar os trabalhos desenvolvidos na minha escola.
    Peço ajuda!!!

  4. Rodrigo's Gravatar Rodrigo
    Novembro 10, 2009 at 1:36 pm | Permalink

    é o melhor tutorial ki ja vi , mais detalhado , sem faltar nenhuma parte

  5. Rodrigo's Gravatar Rodrigo
    Novembro 10, 2009 at 1:36 pm | Permalink

    parabensss

  6. Janeiro 18, 2010 at 3:48 pm | Permalink

    massa

Deixe um Comentario

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="">

Marcelo Ramos