Sistema de Newsletter – Parte 1

Publicado por Marcelo Ramos em 24/03/2007

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


Assine o nosso Feed
1.330 assinantes,
assine você também!
Publique esse artigo no Twitter Salve este artigo no Delicious Cadastre esse artigo no Dihitt Cadastre esse artigo no UEBA Cadastre esse artigo no Rec6

Marcelo Ramos

6 usuário comentou em " Sistema de Newsletter – Parte 1 "

Assine o Feed de Comtentários ou URL de Trackback

kennedy disse,
Enviado em 26-08-2008 às 2:44 am

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

Gerson Bastos disse,
Enviado em 08-06-2009 às 12:18 pm

Bom!

Vou tentar fazer depois comento melhor. Ok?

Maria José Costa disse,
Enviado em 12-08-2009 às 6:26 am

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!!!

Rodrigo disse,
Enviado em 10-11-2009 às 1:36 pm

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

Rodrigo disse,
Enviado em 10-11-2009 às 1:36 pm

parabensss

wagner disse,
Enviado em 18-01-2010 às 3:48 pm

massa

Deixe o seu comentário abaixo...

 Username (*required)

 Email Address (*private)

 Website (*optional)

 

MXStudio © 2003-2010. Todos os direitos reservados.
É expressamente proibido a cópia, reprodução e difusão dos textos, fotos e outros elementos contidos neste site sem autorização expressa do MXStudio.