newsletter.pl

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

[ Hits: 6.124 ]

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

Envia e-mail com anexo

Apagar MAILER-DAEMON da fila de email

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

Email UserAdmin

FetchYahoo 2.8.1


  

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