Há algum tempo fiz uma mala direta e precisei enviar para vários clientes.
Infelizmente na época não tinha o conhecimento e maturidade necessária para trabalhar em listas de emails.
Na matéria de hoje, estarei apresentando uma forma prática e simples onde você poderá importar emails de listas em .txt e exportá-las para banco de dados em MySQL.
Em anexo disponibilizo os ficheiros usados nesta matéria, onde você poderá testar de forma simples e prática.
Configurando A Base de Dados
Antes de tudo, é necessário configurar a base de dados.
Com o BD já criado, acesse o ficheiro “conexao.php” e configure o ficheiro alterando as informações de acesso à base de dados (conforme script a seguir).
<?
// SERVIDOR
$database = "SERVIDOR";
$dbname = "BASEDEDADOS";
$usuario = "USUARIO";
$dbsenha = "SENHA";
$conexao=mysql_connect ($database, $usuario, $dbsenha);
if($conexao){
if (mysql_select_db($dbname, $conexao)){
print "";
}else{
print "Não foi possível selecionar o Banco de Dados";
}
}else{
print "Erro ao conectar o MySQL";
}
?>
Após a configuração, vamos agora criar a tabela que será usada!
Criando A Tabela Na Base De Dados
Você terá 2 possibilidades:
Para configurar a base de dados através do script, abra o ficheiro script-sql.txt (disponível em anexo) e cole seu conteúdo no Programa utilizado para gerenciamento da base de dados.
Em nossas matérias utilizamos como padrão o MySQLFront. Caso tu também esteja utilizando este programa, clique em SQL Editor e cole o conteúdo do script (conforme código e imagem abaixo).
----- INSTALANDO A TABELA -----
CREATE TABLE `emails` (
`id` int(11) NOT NULL auto_increment,
`email` varchar(255) default NULL,
PRIMARY KEY (`id`)
);
Após importar os dados, você já poderá fazer uso do sistema abaixo.
Criando o Formulário
A criação do formulário é super simples e você poderá customizá-lo da maneira que achar viável.
No ficheiro abaixo, há um pequeno formulário que envia o ficheiro a ser tratado na página upload.php (conforme script a seguir):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META HTTP-EQUIV="Refresh" CONTENT="60">
<title>.:: WEBMASTER.PT :: Filtrando listas ::.</title>
<link rel="stylesheet" href="3col_rightNav.css" type="text/css">
</head><body>
<div id="masthead">
<h1 align="center" id="siteName">WEBMASTER.PT Filtrando listas</h1>
</div>
<form action="upload.php" method="post" enctype="multipart/form-data" name="form1" enctype="multipart/form-data">
<div align="center">
Enviar Lista
<input type="file" name="arquivo">
<input name="Submit" type="submit" id="Submit" value="enviar">
</div>
</form>
</body></html>
Veja a seguir como funciona o ficheiro upload.php.
Tratando O Ficheiro
Nesta matéria estamos usando o ficheiro upload.php.
Ele tem a finalidade apenas de pegar os emails de uma lista (que aparecem em ordem sequencial) e enviá-los para uma base de dados mysql.
Ele efetua limpeza, evitando que sua lista seja duplicada (veja o código a seguir):
<?php
include('conexao.php');
$arquivo = $_FILES['arquivo'];
function trocar_acentos ($arquivo){
$arquivo = str_replace(' ','_',$arquivo);
$arquivo = str_replace('á','a',$arquivo);
$arquivo = str_replace('Á','a',$arquivo);
$arquivo = str_replace('à','a',$arquivo);
$arquivo = str_replace('À','a',$arquivo);
$arquivo = str_replace('é','e',$arquivo);
$arquivo = str_replace('É','e',$arquivo);
$arquivo = str_replace('í','i',$arquivo);
$arquivo = str_replace('Í','i',$arquivo);
$arquivo = str_replace('ó','o',$arquivo);
$arquivo = str_replace('Ó','o',$arquivo);
$arquivo = str_replace('ú','u',$arquivo);
$arquivo = str_replace('Ú','u',$arquivo);
$arquivo = str_replace('(','',$arquivo);
$arquivo = str_replace(';','',$arquivo);
$arquivo = str_replace('0;não enviado;','',$arquivo);
$arquivo = str_replace(')','',$arquivo);
$arquivo = str_replace('ç','c',$arquivo);
$arquivo = str_replace('Ç','c',$arquivo);
$arquivo = str_replace('.JPG','.jpg',$arquivo);
$arquivo = strtolower($arquivo);
return $arquivo;
}
$arquivo = trocar_acentos ($_FILES['arquivo']['name']);
$arquivo_extensao = substr($arquivo,strpos($arquivo,'.')+1,strlen($arquivo)-strpos($arquivo,'.'));
$imagem_destaque_tamanho = $_FILES['arquivo']['size'];
$imagem_destaque_descricao = $_FILES['arquivo'];
$imagem_destaque_data = date('d/m/Y');
$uploaddir = "";
$data = mktime();
if ($arquivo != ""){
if (file_exists($uploaddir.$arquivo)){ $arquivo = mktime()."_".$arquivo; }
move_uploaded_file($_FILES['arquivo']['tmp_name'], $uploaddir . $arquivo);
}else{
$arquivo = "";
}
$arquivo = $arquivo;
$arq = fopen($arquivo,'r');
while(!feof($arq)){
$email = fgets($arq); // cria um array com o conteudo do arquivo
$email = trim($email);
$query_select_email = "SELECT * FROM emails where email = '$email'";
$rs_select_email = mysql_query($query_select_email);
$contador_rows = mysql_num_rows($rs_select_email);
if($contador_rows >= 1){
}else{
$sql_insert = "INSERT INTO emails (email) VALUES('$email')";
$rs_insert = mysql_query($sql_insert);
}
}
if($rs_insert){
?>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript"> alert ("Lista exportada com sucesso")</SCRIPT>
<SCRIPT language="JavaScript">window.location.href="index.php";</SCRIPT>
<?
}
?>
OBS.: Caso queira, você poderá melhorar e muito esta lista, inserindo novos recursos, facilitando ainda mais seu trabalho.