newsletter.pl
Publicado por Fábio Berbert de Paula 13/11/2002
[ Hits: 6.437 ]
Homepage: https://fabio.automatizando.dev
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.
#!/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);
}
Adicionar conta de e-mail - Postfix com domínios virtuais no MySQL
Notificador de Gmail no Conky.
Retorna apenas emails válidos com MX válidos
Remover caixas postais do Cyrus IMAP
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









