newsletter.pl

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

[ Hits: 6.223 ]

Homepage: https://fabio.automatizando.dev

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 spam na fila do postfix por palavra

Apagar MAILER-DAEMON da fila de email

Email UserAdmin

Retornar somente e-mails válidos

Notificador de Gmail no Conky.


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts