You are on page 1of 6

Sistema de Newsletter - Parte 1

Autor: Marcelo Souza Ramos


Data de publicação: 24/03/2007
Parte do Tutorial: 1
Quantidade de Visualização: 4766

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
5. 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

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

You might also like