1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
sub sendMail(){
use IO::Socket;
use vars qw(
$port $iaddr $paddr $proto $line $socket $nb $pause
);
my ($mailDest, $mailSource, $subject, $message, $source, $dest, $nbMail, $serveurSMTP)=@_; # $source et $dest sont les infos visibles dans le mail
$serveurSMTP='smtp.free.fr' unless(defined($serveurSMTP));
$nbMail=1 unless(defined($nbMail));
$port=25;
$pause=60;
for ($nb=1; $nb<=$nbMail;$nb++){
$socket = IO::Socket::INET->new(
PeerAddr => $serveurSMTP,
Proto => "tcp",
PeerPort => $port
);
$line=<$socket>; #220 smtp2-g19.free.fr ESMTP Postfix
print $socket "HELO you\r\n";
$line=<$socket>;#250 smtp2-g19.free.fr
print $socket "MAIL FROM: <$mailSource>\r\n";
$line=<$socket>; #250 Ok
print $socket "RCPT TO: <$mailDest>\r\n";
$line=<$socket>; #250 Ok
print $socket 'DATA'."\r\n";
$line=<$socket>; #354 End data with <CR><LF>.<CR><LF>
print $socket "From: $source\r\n";
print $socket "To: $dest\r\n";
print $socket "Subject: $subject\r\n";
print $socket $message;
print $socket "\r\n.\r\n";
$line=<$socket>; #250 Ok: queued as 396A473128
print $socket "QUIT\r\n";
$line=<$socket>; #221 Bye
sleep($pause) if ($nb%20==0); #pour pas saturer la file du serveur chez free :p
}
return 0;
} |