newsletter.pl
Publicado por Fábio Berbert de Paula 13/11/2002
[ Hits: 6.127 ]
Homepage: https://www.instagram.com/alexabolada/
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); }
Retorna apenas emails válidos com MX válidos
Apagar spam na fila do postfix por palavra
Nenhum comentário foi encontrado.
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
Clamav e suas atualizações (15)
Desenvolvimento de um driver (10)
Não esta salvando as configurações de usuário. (3)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba