Linux slogan
Visite também: BR-Linux.org · Dicas-L · NoticiasLinux · SoftwareLivre.org · UnderLinux · BestLinux
» Screenshot



» Login
Login:
Senha:

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

Esqueci minha senha

» Wallpaper
Linux: Arch
Por percival


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: 1730 ]
Conceito: 10.0   Linux conceitoLinux conceitoLinux conceitoLinux conceitoLinux conceito + 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;

Navegação

Outros artigos deste autor
Nenhum artigo encontrado.

Leitura recomendada
{RECOMENDADOS}

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

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


vou testar
Abraço.


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 ??

Comentário enviado por Tony_baiacu em 04/11/2008 - 16:51h:

meus parabens Brother
cada dia melhor em
um salve ai


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.
Contribuir com: [ Artigo | Conf | Dica | Pergunta | Script | Screenshot | Simulado | Wallpaper ]
Responsável pelo site: Fábio Berbert de Paula - Copyleft© 2002-2008 Viva o Linux.com.br

Viva o Linux

A maior comunidade Linux do Brasil! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.