Professional Documents
Culture Documents
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.
Pré-requisito
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.
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
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
8. Volter novamente para a guia Formulário da barra inserir e clique no botão rádio
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.
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