Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Enviando emails em Perl
Linux user
Dr4k3
02/11/2008
A forma mais comum de se enviar emails em Perl é usando o Net::SMTP, mas este não tem muitos recursos. Já em plataformas UNIX/Linux podemos enviar emails em massa, com anexo e até anonimamente, neste artigo mostrarei como.
Por: Felipe
[ Hits: 14599 ]
Conceito: 10.0   1 voto(s)1 voto(s)1 voto(s)1 voto(s)1 voto(s) + quero dar nota ao artigo

Básico: Net::SMTP

Enviando um simples email com o Net::SMTP:

#!/usr/bin/perl
use Net::SMTP;
$smtp = Net::SMTP->new('mailhost'); #esse comando vai abrir a conexão com servidor

No lugar de "mailhost" você põe o servidor de email, exemplos:

Hotmail:

$smtp = Net::SMTP->new('smtp.hotmail.com');

Yahoo:

$smtp = Net::SMTP->new('smtp.yahoo.com');

Cabeçalho:

Nome:

$smtp->mail("user"); #aqui você vai entrar com seu nome/apelido etc

Usando "Dr4k3":

$smtp->mail("Dr4k3");

Autenticação (opcional):

$smtp->auth("user","senha"); #aqui você vai autenticar seu email

Vamos supor que meu email seja "dr4k3@hotmail.com" e a minha senha "123456":

$smtp->auth("dr4k3","123456");

Destinatário:

$smtp->to('user@hotmail.com'); #aqui você vai por o destinatário, ou seja, quem vai receber o email

Vamos supor que o email do c00l3r seja "c00l3r@hotmail.com", nosso código ficaria assim:

$smtp->to('c00l3r@hotmail.com');

Data:

$smtp->data();
$smtp->datasend("To: user@hotmail.com"); #o data é o que vai imprimir a quem foi enviado e o remetente, caso dê algum erro ou o email esteja programado para mandar mensagens automáticas

Remetente:

$smtp->datasend("From: você@hotmail.com"); # este é o remetente e o fim do cabeçalho

Um exemplo do data completo:

$smtp->data();
$smtp->datasend("To: c00l3r@hotmail.com");
$smtp->datasend("From: dr4k3@hotmail.com");

Corpo:

$smtp->datasend("Artigo trabalhando com emails em Perl BotecoUnix"); #Aqui vem o conteúdo do email

Final:

$smtp->quit; #aqui encerramos a conexão com servidor

Exemplo de uma source completa:

#!/usr/bin/perl
use Net::SMTP;
print q{
##############################
# Trabalhando com Emails
# usando o Net::SMTP
##############################
};
# DADOS
print 'Qual é o email Host?'; #pergunta para o usuário qual o emailhost que ele vai usar
chomp($eh = <STDIN>); #salva na memória
print 'Nome:'; #entra com o nick
chomp($name = <STDIN>);
print 'email:'; #entra com o user
chomp($mail = <STDIN>);
print 'senha:'; #entra com a senha
chomp($pass = <STDIN>);
print 'enviar para quem?:'; #entra com o destinatário
chomp($dest = <STDIN>);
print 'remetente:'; #entra com o remetente
chomp($remt = <STDIN>);
print 'Mensagem:'; #entra com o conteúdo
chomp($msg = <STDIN>);

# CONEXÃO
$smtp = Net::SMTP->new('smtp.$eh'); #abre a conexão
$smtp->mail("$name");
$smtp->auth("$mail","$pass");
$smtp->to('$dest');
$smtp->data();
$smtp->datasend("To:$dest ");
$smtp->datasend("From: remt");
$smtp->datasend("$msg");
$smtp->quit;
# FIM DA CONEXÃO
print "email enviado";
<STDIN>;
exit;

Próxima página >>




Páginas do artigo

Outros artigos deste autor
Nenhum artigo encontrado.

Leitura recomendada
Nenhum artigo encontrado.

Comentários
[1] Comentário enviado por QuestLoder em 03/11/2008 - 08:35h:

Show de bola,
Estava procurando um artigo assim, parabens...


vou testar
Abraço.


[2] Comentário enviado por dailson em 04/11/2008 - 16:45h:

Amigo. Já uso o perl para enviar emails via linha de comando, porém tenho uma dificuldade e gostaria de saber se você pode me ajudar.
Toda vez que acentuo um caracter no Subject, chega errado em alguns clientes de email como o hotmail.
No corpo da mensagem ocorre tudo bem. Como faço para colocar acentuação no subject ??

[3] Comentário enviado por Cooler_ em 04/11/2008 - 16:51h:

meus parabens Brother
cada dia melhor em
um salve ai

[4] Comentário enviado por perserktor em 04/05/2009 - 18:48h:

apenas acrescentando, caso queria utilizar outro servidor SMTP, pois hotmail por exemplo barra envio se o seu smtp não for um SMTP valido.

O grande x da questão é que servidores de e-mail como o do G-Mail usam autenticação "SSL" ou "TLS" para usa-los vc deve utilizar modulos específicos.

Segue o exemplo de envio utilizando o smtp do Ggmail,

use Net::SMTP::TLS;
use IO::Socket::INET;

# Pega o domain host
use Net::SMTP;
my $domain = Net::SMTP->new('smtp.gmail.com', Timeout => 30);
my $domainhost = $domain->domain;
#configuração para conexão TSL
my $smtp = Net::SMTP::TLS->new('smtp.gmail.com',
Hello => $domainhost,
Port => 587,
User => 'seuemail@gmail.com',
Password => 'sua senha aki',
Timeout => 30,
Debug => 1,
);
#dados de envio do e-mail
$smtp->mail('remetente@dominio.com');
$smtp->to('destinatario@dominio.com');
#assunto e corpo da mensagem
$smtp->data();
$smtp->datasend ('From: tepego_na_curva@hotmail.com');
$smtp->datasend("\n");
$smtp->datasend('Subject: -----Seu Assunto Aki-------');
$smtp->datasend("\n");
$smtp->datasend("-----PENSE MUITO ANTES DE FAZER O MAL, POIS ELE VOLTARA PRA VOCÊ ----");
$smtp->dataend();
$smtp->quit;

Espero ter contribuido com o post de nosso amigo, e lembrem-se de usar este scrip de forma adequada. rs

[5] Comentário enviado por poetah em 10/10/2009 - 00:15h:

pena que no gmail mesmo autenticando ele envia
com o nome de email padrao, sem ser fake!!!

bom artigo

[]'s

[6] Comentário enviado por R4$T4 em 15/09/2010 - 19:04h:

show de bola os tutoriais do Drake e do C00l3r salvam a pátria diariamente xD

[7] Comentário enviado por barao2011 em 09/01/2012 - 21:34h:

como faz pra configurar esse envio com io ou dns reverso ????

[8] Comentário enviado por swit em 24/01/2012 - 12:59h:

Ola eu estou tentando envia emails anonymos com a opção que vc descreveu porem ele nao envia gostaria de saber oque vc preciso configura pra consegui envia emails anonymos em massa?


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.