newsletter.pl
Publicado por Fábio Berbert de Paula 13/11/2002
[ Hits: 6.130 ]
Homepage: https://mestrefabio.com
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); }
Remover caixas postais do Cyrus IMAP
Adicionar conta de e-mail - Postfix com domínios virtuais no MySQL
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 (2)
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Entendendo o que é URI, URL, URN e conhecendo as diferenças entre POST e GET
Ativando o Modo Noturno via Linha de Comando no GNOME/Wayland
Habilitando a importação de senhas no Firefox
Como corrigir o erro do VirtualBox travar a máquina virtual em tela cheia
Instalando Google Chrome no Ubuntu 24.04 LTS
Quantidade de caracteres suportados na barra de endereços dos navegadores
Altera pacote .pkg.tar do Arch Linux (16)
Segunda tela não dá vídeo mas reconhece o monitor no painel (3)
Erro ao fazer parse GUID string para GUID hexadecimal [AJUDA] (6)