Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
O que está de errado neste código ?
#!/usr/local/bin/perl
use MIME::Base64;
use Net::SMTP::SSL;
my ($servidorsmtp,$usuariosmtp,$senhasmtp) = ('send@x.com', 'abcdefg');
my ($nomeremetente,$emailremetente) = ('', 'odkasodsa@x.com');
my ($nomedestinatario,$emaildestinatario) = ('', 'email@gmail.com');
my $assunto = 'teste ando';
my $emailresposta = 'ml@x.com';
my $corpo = 'texto';
my $dominiohello = 'x.com';
my $enviador;Port => 465,
Debug => 1)) {
die "Nao foi possivel conectar\n";
}
open(FOO, corpo.html);
@foo = <FOO>;
$corpo = join("\n", @foo);
open (BANDFIT, "list.txt") || die "Nao foi possivel abrir a lista";
$cont=0;
while(<BANDFIT>) {
my $ID = $_;
foreach ($ID) {
$emaildestinatario = $ID;
$usuariocriptografado = encode_base64("\00".$usuariosmtp."\0".$senhasmtp);
$enviador->datasend("AUTH PLAIN " . $usuariocriptografado);
$enviador->mail($emailremetente);
$enviador->to($emaildestinatario);
$enviador->data();
@meses = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
@diasdasemana = qw(Sun Mon Tue Wed Thu Fri Sat Sun);
($segundo, $minuto, $hora, $diadomes, $mes, $ano0, $diadasemana, $diadoano, $dlsgs) = localtime();
$ano = 1900 + $ano0;
$enviador->datasend('From: "' . $nomeremetente . '" <' . $emailremetente . '>' . "\n");
$enviador->datasend('To: "' . $nomedestinatario . '" <' . $emaildestinatario . '>' . "\n");$enviador->datasend('Subject: ' . $assunto . "\n");my $diadomes = '0' . $diadomes;
}my $hora = '0' . $hora;
}my $minuto = '0' . $minuto;
}my $segundo = '0' . $segundo;
}
$enviador->datasend("Date: $diasdasemana[$diadasemana], $diadomes $meses[$mes] $ano $hora:$minuto:$segundo -0600\n");
$enviador->datasend('MIME-Version: 1.0' . "\n");
my ($bi, $bn, @bchrs);
my $boundry = "";$bchrs[$bi++] = chr($bn);
}$boundry .= $bchrs[rand($bi)];
}
$enviador->datasend("Content-Type: multipart/alternative; boundary=\"$boundry\"\n");
$enviador->datasend("Reply-To: " . $emailresposta . "\n\n");
$enviador->datasend("\nThis is a multi-part message in MIME format.\n");
$enviador->datasend("\n--$boundry\n");
$enviador->datasend("Content-Type: text/html; charset=ISO-8859-1\n");
$enviador->datasend("Content-Transfer-Encoding: 8bit\n");
$enviador->datasend("\n $corpo \n\n");
$enviador->datasend("\n--$boundry--\n\n");
$enviador->dataend;
$enviador->quit;
$cont=$cont+1;
printf "$cont Enviado para $emaildestinatario \n";
}
}Fvox, agora parou de dar erro, acho que era o servidor mesmo, mas me diz outra coisa, como eu faço pro script colocar < e > antes e depois do email automaticamente?
Minha lista de email está assim:
email@provedor.com.br
email@provedor.com.br
email@provedor.com.br
email@provedor.com.br
email@provedor.com.br
Sem virgula e sem o < e >, quero que o script leia a lista da forma que está e coloque o < e >
Segue o script atual:
#!/usr/local/bin/perl
use MIME::Base64;
use Net::SMTP::SSL;
#### Configs ####
my $corpo = 'corpo.html';
my $lista = 'list.txt';my ($servidorsmtp,$usuariosmtp,$senhasmtp) = ('', '', '');
my $dominiohello = '';
##
my ($nomeremetente,$emailremetente) = ('xxx', 'xxx');
my $assunto = 'xxx';
my $emailresposta = 'xxx';
##
########
open(FOO, $corpo) || die "Nao foi possivel abrir o html\n";
@foo = <FOO>;
$corpo = join("\n", @foo);
open (BANDFIT, $lista) || die "Nao foi possivel abrir a lista\n";
####
$cont=0;
system("rm enviados.txt");
system("rm naoenviados.txt");
while(<BANDFIT>) {
my $ID = $_;
foreach ($ID) {
$cont=$cont+1;
if ($ID =~ /<(.*)>/) {
$emaildestinatario = $1;
if ($ID =~ /<(.)@(.)>/) {
my ($bi, $bn, @bchrs);
my $boundry = "";
foreach $bn (48..57,65..90,97..122) {
$bchrs[$bi++] = chr($bn);
}
foreach $bn (0..28) {
$boundry .= $bchrs[rand($bi)];
}
####
@meses = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
@diasdasemana = qw(Sun Mon Tue Wed Thu Fri Sat Sun);
($segundo, $minuto, $hora, $diadomes, $mes, $ano0, $diadasemana, $diadoano, $dlsgs) = localtime();
$ano = 1900 + $ano0;
if (length($diadomes) == 1) {
my $diadomes = '0' . $diadomes;
}
if (length($hora) == 1) {
my $hora = '0' . $hora;
}
if (length($minuto) == 1) {
my $minuto = '0' . $minuto;
}
my $adesivodata = "$diasdasemana[$diadasemana], $diadomes $meses[$mes] $ano $hora:$minuto:$segundo -0600"; ## -0600: Fuso Horario
####
#### SMTP ####
if ($envio == 0) {
Port => 465,
Debug => 1)) {
die "Nao foi possivel conectar\n";
}
####
$usuariocriptografado = encode_base64("\00".$usuariosmtp."\0".$senhasmtp);
$enviador->datasend("AUTH PLAIN " . $usuariocriptografado);
$enviador->mail($emailremetente);
$enviador->to($emaildestinatario);
$enviador->data();
$enviador->datasend("From: \"$nomeremetente\" <$emailremetente>\n");
$enviador->datasend("To: $ID");
$enviador->datasend("Subject: $assunto\n");
$enviador->datasend("Date: $adesivodata\n");
$enviador->datasend("Importance: Normal\n");
$enviador->datasend("MIME-Version: 1.0\n");
$enviador->datasend("Content-Type: multipart/alternative; boundary=\"$boundry\"\n");
$enviador->datasend("Reply-To: <$emailresposta>\n\n");
$enviador->datasend("\nThis is a multi-part message in MIME format.\n");
$enviador->datasend("\n--$boundry\n");
$enviador->datasend("Content-Type: text/html; charset=ISO-8859-1\n");
$enviador->datasend("Content-Transfer-Encoding: 8bit\n");
$enviador->datasend("\n $corpo \n\n");
$enviador->datasend("\n--$boundry--\n\n");
$enviador->dataend;
$enviador->quit;
####
}
########
#### SendMail ####
if ($envio == 1) {
open(enviador,"|$localsendmail -t");
print enviador "From: \"$nomeremetente\" <$emailremetente>\n";
print enviador "To: $ID";
print enviador "Subject: $assunto\n";
print enviador "Date: $adesivodata\n";
print enviador "Importance: Normal\n";
print enviador "MIME-Version: 1.0\n";
print enviador "Content-Type: multipart/alternative; boundary=\"$boundry\"\n";
print enviador "Reply-To: <$emailresposta>\n\n";
print enviador "\nThis is a multi-part message in MIME format.\n";
print enviador "\n--$boundry\n";
print enviador "Content-Type: text/html; charset=ISO-8859-1\n";
print enviador "Content-Transfer-Encoding: 8bit\n";
print enviador "\n $corpo \n\n";
print enviador "\n--$boundry--\n\n";
close (enviador);
}open (MEUARQUIVO, '>>enviados.txt');
print MEUARQUIVO "$cont Enviado para $emaildestinatario \n";
close (MEUARQUIVO);
printf "$cont Enviado para $emaildestinatario \n";
}
else {
open (MEUARQUIVO, '>>naoenviados.txt');
print MEUARQUIVO "$cont Nao enviado para $emaildestinatario adicionar o email entre <>\n";
close (MEUARQUIVO);
printf "$cont Nao enviado para $emaildestinatario adicionar o email entre <>\n";
}
}
else {
open (MEUARQUIVO, '>>public_html/naoenviados.txt');
print MEUARQUIVO "$cont Nao enviado para $emaildestinatario adicionar o email entre <>\n";
close (MEUARQUIVO);
printf "$cont Nao enviado para $emaildestinatario adicionar o email entre <>\n";
}
}
}
close(BANDFIT);
Que erro deu aí?
EDIT: Fiz algumas correções de sintaxe no código... Segue:
#!/usr/bin/env perl
if (
not $enviador = Net::SMTP::SSL->new(
$servidorsmtp,
Hello => $dominiohello,
) {
"Date: $diasdasemana[$diadasemana], $diadomes $meses[$mes] $ano $hora:$minuto:$segundo -0600\n"
[]'s