newsletter.pl

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

[ Hits: 6.127 ]

Homepage: https://www.instagram.com/alexabolada/

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

Email UserAdmin

Retorna apenas emails válidos com MX válidos

Apagar spam na fila do postfix por palavra

Envia e-mail com anexo

mimemail.pl


  

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