Envio de boletins a e-mails de um banco de dados MySQL
Código em PHP para o envio de boletins a e-mails armazenados em um banco de dados.Por Raúl Avilés
Publicado em: 26/3/08
Agora está muito na moda o envio de boletins para informar das novidades nas webs. O único problema é que para fazê-lo, a maioria de webmasters tem que depender de alguma empresa (ou servidor) que lhes gerencie o banco de dados e lhes envie e-mails quando o requeiram.
Neste artigo explicarei passo a passo como criar a tabela (no banco de dados MySQL) necessária para o armazenamento dos e-mails e posteriormente, como enviar um boletim a todos eles, com o estímulo de que não apareçam todos os destinatários no campo "Para:" da mensagem.
Criação de tabela no banco de dados
Mediante seu gerenciador do banco de dados MySQL (certamente "phpMyAdmin") deve criar uma nova tabela em seu banco de dados. Aqui lhe facilitamos o arquivo de texto para isso:
CREATE TABLE usuarios (
id bigint(7) NOT NULL auto_increment,
nick varchar(100) NOT NULL,
passoword varchar(100) NOT NULL,
nome varchar(255) default NULL,
email varchar(100) default NULL,
KEY id (id)
)
E ficará assim em seu phpMyAdmin:
Depois disso, você já tem a tabela necessária para armazenar os dados dentro de um banco de dados MySQL. Poderia explicar como introduzir os dados nesta tabela mediante formulários de registro... porém isso já deixo a gosto do webmaster.
Envio do boletim
Para enviar o boletim só deve mudar os dados do seguinte arquivo php pelos de seu banco de dados e terá seu arquivo pronto. Para enviar o boletim só tem que executar este arquivo em seu servidor (carregá-lo: por exemplo, entrar em http://usuarios.lycos.com/seunomedeusuario/prova.php):
<?php
$minha_conexion=mysql_connect('servidor','nome_de_usuarior','senha') or die('Não se pode conectar com o banco de dados!');
/*
Servidor: aqui deve colocar o endereço de seu servidor, na maioria das companhias é 'localhost'
Nome_de_usuario: deve colocar seu nome de usuário no servidor.
Senha: sua senha.
*/
mysql_select_db('banco_de_dados',$minha_conexao);
/*
Banco_de_dados: nome de seu banco de dados.
*/
$query_Tabela = "SELECT email FROM usuarios ORDER BY id ASC";
$Tabela = mysql_query($query_Tabela, $minha_conexao) or die(mysql_error());
/*
E-mail: é o nome do campo que requeremos, se seguiu nossas instruções criando nossa mesma tabela no banco de dados não deve mudar isto.
Usuários: é o nome da tabela onde está o campo 'email', se seguiu nossas instruções criando nossa mesma tabela em banco de dados não deve mudar isto.
*/
//elaboramos cadeia de emails
$osemails="";
while ($row_Tabela=mysql_fetch_assoc($Tabela)) {
$osemails.=($row_Tabela['email'].", ");
}
$largo=strlen($osemails);
if ($largo>2)
{
//tiramos ultimos ", "
$osemails=substr($osemails,0,$largo-2);
}
else
{
echo "Não há destinatários!";
die();
};
// se definem os argumentos de mail( ):
$assunto='Prova de email atraves de PHP';
$mensagem='<html>
<head>
<title>Titulo da Pagina</title>
</head>
<body>
<p>Esta é uma prova de emails em formato HTML</p>
Preços de nossos produtos:
<table>
<tr>
<th>PRODUTO<th>PRECO<th>PROMOCAO</th>
</tr>
<tr>
<td>Refrigerante Grande</td><td>25,50</td><td>23,00</td>
</tr>
<tr>
<td>Sorvete Napolitano</td><td>27,50</td><td>25,00</td>
</tr>
<tr>
<td>Batatas</td><td>18,50</td><td>15,00</td>
</tr>
</table>
</body>
</html>';
/*
Aqui deve colocar seu email em formato HTML
*/
$envia='enviante';
$remete='email_remetente';
/*
Enviante: Nome do enviante
Email_remetente: email que deseja mostrar como remetente.
*/
/// Envio do email:
mail(null, $assunto, $mensagem, "MIME-Versao: 1.0
Content-type: text/html; charset=iso-8859-1
From: $envia <$remete>
Bcc: $osemails" . "\r\n") or die("Erro ao Enviar o Email");
echo "Mensagem Enviado com Sucesso!"; //
mysql_free_result($Tabela);
mysql_close($minha_conexao);
?>
Já temos nosso sistema de envio de boletins, não teremos que depender de ninguém.
O único problema que apresenta este sistema é que ao não aparecer nada no campo "Para:" do email, alguns gerenciadores de email o colocam como "correio não desejado". Aceito contribuições de outros leitores para melhorá-lo.
Comentários do artigo
| Por: Manuel Américo Ribeiro Alves da Rocha | | 09/9/08
|
Para não acontecer isso no para podes colocar ou um e-mail falso ou o e-mail de quem está a enviar ou então um e-mail criado para o efeito. No entanto tens ai um bom script. Muito bom mesmo.
" Erro ao Enviar o Email " Por: Álvaro | | 15/3/09
|
Está apresentando a mensagem ; "Erro ao Enviar o Email" e
não consigo identificar o motivo.
Poderia dar uma ajuda?
 | duvida Por: edermunari
| 20/7/09 |
cara sua dica ta show parabens...
sera que vc pode me ajudar com um problema?
criei meu site e envie bd td certo configurei usuario senha e bd mas nao esta enviando para o bd quando preencho o formulario de cadastro no site e clico em enviar ele recarrega a pagina e nao envia os dados... o que pode ser?
 | correção Por: joaquim_afonso
| 21/11/09 |
Gostei muito do artigo, simples e pratico. Há um pequeno acerto a ser feito devido a um erro de digitação. A variavel $minha_conexao esta definida em outra parte do programa com um nome diferente, para um iniciante pode ser dificil detectar em um primeiro momento.