Scripts para envio de e-mail


O script abaixo envia emails via perl.

Basta criar um arquivo.pl com o código abaixo e executar o script.


#!/usr/bin/perl -w

use Net::SMTP;
use MIME::Base64;

$smtp = Net::SMTP->new('server', Debug => 1, Timeout => 30);

$smtp->mail('dersonsaqua@yahoo.com.br');
$smtp->to('anderson@teste.com.br');

$smtp->data();
$smtp->datasend("Subject: aaaa"."\n");
$smtp->datasend('To: anderson@teste.com.br'."\n");

$smtp->datasend("\n");
$smtp->datasend("bbb");

$smtp->dataend();

$smtp->quit;
Podemos fazer um script para enviar um arquivo também:


#!/usr/bin/perl -w

use Net::SMTP;
use MIME::Base64;

$smtp = Net::SMTP->new('server', Debug => 1, Timeout => 30);

$smtp->mail('anderson@bravo.com.br');
$smtp->to('regra@teste.com.br');

$smtp->data();
$smtp->datasend('Subject: teste'."\n");
$smtp->datasend('To: regra@teste.com.br'."\n");

$file = "cc3250.dll";
$smtp->datasend("Mime-Version: 1.0\n");
$smtp->datasend("Content-Type: application/jpeg;\n");
$smtp->datasend("      name=\"$file\"\n");
$smtp->datasend("Content-Transfer-Encoding: base64\n");
$smtp->datasend("Content-Disposition: attachment;\n");
$smtp->datasend("      filename=\"$file\"\n");
$smtp->datasend("\n");
open INP,  "/bin/sh -c \"uuencode -m $file < $file | sed -e '1d' -e '\\\$d'\"|";
while() {
   $smtp->datasend($_);
}
close INP;

$smtp->dataend();

$smtp->quit;
Podemos também ler os destinatários de um arquivo:


#!/usr/bin/perl -w

use Net::SMTP;
use MIME::Base64;

@Linhas = ("");
open(MAIL, ") {
   push(@Linhas,$_);
}
close(MAIL);
 
for(@Linhas) {  
	if(/[[:alpha:]]/) {	
		$smtp = Net::SMTP->new('server', Debug => 1, Timeout => 30);
		$smtp->mail('anderson@bravo.com.br');
		$smtp->to("$_");

		$smtp->data();
		$smtp->datasend('Subject: teste'."\n");
		$smtp->datasend("To: $_ \n");
		$smtp->datasend("\n");
		$smtp->datasend("teste");
		$smtp->dataend();

		$smtp->quit;
	}
}
Podemos também ler argumentos passados para o script:


#!/usr/bin/perl -w

use Net::SMTP;
use MIME::Base64;

$max = $ARGV[0];

for ($i = 1; $i <= $max; $i++) {

$smtp = Net::SMTP->new('192.168.3.10', Debug => 1, Timeout => 30);

$smtp->mail('dersonsaqua@yahoo.com.br');
$smtp->to('administrador@teste.com.br');

$smtp->data();
$smtp->datasend("Subject: $i"."\n");
$smtp->datasend('To: administrador@teste.com.br'."\n");

$smtp->datasend("\n");
$smtp->datasend("$i");

$smtp->dataend();

$smtp->quit;

}





Comentários

Copyright © 2018 Anderson Bravo
www.andersonbravo.com.br
anderson@andersonbravo.com.br