newsletter.pl

Publicado por Fábio Berbert de Paula 13/11/2002

[ Hits: 5.712 ]

Homepage: https://fabio.city

Download newsletter.zip




Este é o script usado para se conectar ao MySQL, buscar os nomes e endereços de
email das pessoas cadastradas no site e enviar uma mensagem para cada um da lista.Ele usa os módulos DBI para banco de dados e MIME::Entity para envio de email.

  



Esconder código-fonte

#!/usr/bin/perl
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# newsletter.pl
#
# Programa usado para enviar uma newsletter para
# uma lista de emails carregada a partir de uma
# tabela do MySQL
#
# Programado por Fábio Berbert de Paula <fabio@vivaolinux.com.br>
# Na web em: www.vivaolinux.com.br
#
# Rio de Janeiro, 25 de Julho de 2002
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

use strict; # módulo que nos força a declarar variáveis locais

our ($dbName,$dbHost,$dbUser,$dbPass,$newsTable);
require '/home/seguro/con.vivaolinux.vars'; # arquivo com o valor das variáveis

our ($tplFrom,$tplSubject,$tplBody);
require '/home/seguro/newsletter.vars'; # arquivo com o valor das variáveis

use MIME::Entity; # módulo para envio de email

# conectar ao banco de dados
use DBI;

my $con = DBI->connect("DBI:mysql:database=$dbName;host=$dbHost",$dbUser,$dbPass)
          or die "Não consigome conectar ao MySQL: $!\n";

# Estrutura da tabela no MySQL
# +-------+--------------+------+-----+---------+-------+
# | Field | Type         | Null | Key | Default | Extra |
# +-------+--------------+------+-----+---------+-------+
# | email | varchar(100) |      | PRI |         |       |
# | nome  | varchar(100) | YES  |     | NULL    |       |
# +-------+--------------+------+-----+---------+-------+

# contruir e executar a consulta
my $dbQuery = "SELECT nome,email FROM $newsTable";
my $res = $con->prepare($dbQuery);
$res->execute();

# percorrer os registros retornados pela consulta
while (my @line = $res->fetchrow_array()) {
   my ($name,$email) = @line;
   if (!$name) { $name = 'Usuário'; }
   build_and_send_news($name,$email);
}

$con->disconnect();

# +++++++++++++++++++++++++++++++++++++++++
# build_news - contrói e envia a mensagem
sub build_and_send_news {
   my ($name,$email) = @_;
   my $thisBody = $tplBody;

   # substituir as variáveis voláteis
   $thisBody =~ s/{NOME}/$name/;
   $thisBody =~ s/{EMAIL}/$email/;

   my $mail = build MIME::Entity
                           From    => $tplFrom,
                           To      => $email,
                           Subject => $tplSubject,
                           Type    => 'text/plain',
                           Data    => $thisBody;

   open(MAIL,"| /usr/lib/sendmail -t");
   $mail->print(\*MAIL);
   close(MAIL);
}

Scripts recomendados

Apagar MAILER-DAEMON da fila de email

Envia e-mail com anexo

Apagar spam na fila do postfix por palavra

mimemail.pl

Adicionar conta de e-mail - Postfix com domínios virtuais no MySQL


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts