newsletter.pl
Publicado por Fábio Berbert de Paula 13/11/2002
[ Hits: 6.223 ]
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); }
Apagar spam na fila do postfix por palavra
Apagar MAILER-DAEMON da fila de email
Retornar somente e-mails válidos
Notificador de Gmail no Conky.
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Recuperar arquivos de HD em formato RAW usando Linux (0)
SysAdmin ou DevOps: Qual curso inicial pra essa área? (0)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta