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

Escrito por Marcelo Ramos on março 24, 2007. Arquivado em Dreamweaver. Você pode seguir as respostas a esse artigo pelo RSS 2.0. Você pode deixar respostas para esse artigo

7 respostas a Sistema de Newsletter – Parte 1

  1. 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. Bom!

    Vou tentar fazer depois comento melhor. Ok?

  3. Maria José Costa

    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. é o melhor tutorial ki ja vi , mais detalhado , sem faltar nenhuma parte

  5. parabensss

  6. Eu estou tentando criar uma newsletter para meu site alguem sabe se tem como colocar ela automatizada tipo os email serem enviados por um sistema?

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>