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
- Pressione Ctrl + N
- Selecione a guia Geral
- Na opção Categoria selecione a opção Pagina Dinâmica
- Na opção Pagina Dinâmica selecione a opção PHP
- Clique em Criar

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

- 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
- Na barra inserir clique na guia Formulários
- Clique no botão Formulário

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

- Em seguida clique no botão Campo de texto

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

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

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

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

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

- 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




ShareThis
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
Bom!
Vou tentar fazer depois comento melhor. Ok?
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!!!
é o melhor tutorial ki ja vi , mais detalhado , sem faltar nenhuma parte
parabensss
massa