#!/usr/bin/perl -w

use Net::SMTP;
use Getopt::Long;

$| = 1; # autoflush (stdout)

my $from = 'aasd';
my $to = 'denis@spam.barracudanetworks.com';
my $server = 'dev1.affinitypath.com';
#my $server = '205.158.110.64';
#my $server = 'localhost';
my $size = 1; # 1 byte
my $subject = "domail to cuda test from mail " . localtime(time);
my $times = 1;

GetOptions ('from=s' => \$from, 'to=s' => \$to, 'server=s' => \$server,
	'length=i' => \$size, 'subject=s' => \$subject, 'number=n' => \$times );
print "from\t:$from\n";
print "to\t:$to\n";
print "server\t:$server\n";
print "size\t:$size\n";
print "subject\t:$subject\n";
print "count\t:$times\n";

print "sending msg: ";
for ( my $i = 0; $i < $times; $i++ ) {
	print "$i.. ";
	send_mail( $from, $to, $server);
}
print "\n";


sub send_mail
{
    	my ($from, $to, $server) = @_;

 	$smtp = Net::SMTP->new( "$server" ) || die "no mailserver";
	print "remote server says: " . $smtp->banner( ) . "\n";
 
 	print $smtp->mail( $from );
 	print $smtp->to( $to );
 
 	print $smtp->data();
 	print $smtp->datasend("To: $to\n");
 	print $smtp->datasend("Subject: $subject\n");
 	print $smtp->datasend("Content-Type: text/html; charset=\"us-ascii\"\n");
 	$smtp->datasend("\n");
 	$smtp->datasend("<html><body>");
 	
 	my $garbage = "hello " x $size;
 	$garbage =~ s/(.{80})/$1\n/g;
 
 	@garbage = split( /\n/, $garbage );
 	foreach my $garbage_line (@garbage) {
 		$smtp->datasend($garbage_line);
 	}
 	$smtp->datasend("</body></html>");
 	$smtp->dataend();
 
 	$smtp->quit;
}
