NAME
Mail::Send::Loop - Perl extension for sending emails that attach each file in a specified folder and loop a set of users
SYNOPSIS
use strict;
use Mail::Send::Loop;
my @sender = ('Acting@netdlp.com', 'Actors@netdlp.com', 'Administrator@netdlp.com');
my @rpient = ('tiger@freedom.net', 'lion@freedom.net');
my $mailer = Mail::Send::Loop->new(
mail_host => '127.0.0.1',
mail_port => 25,
mail_mode => '1tom',
greeting => 'www.com',
senders => \@sender,
recipients => \@rpient,
mail_count => 8,
);
my $email_body = &getMIME();
$mailer->setDebug(1);
my $ret = $mailer->sendMail_LoopAllUsers(
mail_body => $email_body,
mail_mode => '1to1',
mail_count => 3,
);
print " $ret mails sent\n";
$ret = $mailer->sendMail_AllFilesInFolder(
mail_folder => 'test_emails',
mail_mode => '1to1',
mail_subject => "blabla...",
mail_txt_body=> "7777",
greetings => "ccc.com",
mail_count => 2,
);
print $mailer->emailMode() . "\n";
$mailer->sendMail_EML('test_emails/mail.eml', $sender[0], $rpient[0]);
sub getMIME(){
return qq(MIME-Version: 1.0
Content-Transfer-Encoding: binary
Content-Type: multipart/mixed; boundary="_----------=_128097394742080"
X-Mailer: MIME::Lite 3.027 (F2.76; T1.30; A2.06; B3.08; Q3.08)
Date: Wed, 4 Aug 2010 19:05:47 -0700
From: jkang\@freedom.net
To: bill\@freedom.net
Subject: A message with 2 parts ...
This is a multi-part message in MIME format.
--_----------=_128097394742080
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Here's the attachment file(s) you wanted
--_----------=_128097394742080
Content-Disposition: attachment; filename="head.gif"
Content-Transfer-Encoding: base64
Content-Type: image/gif; name="head.gif"
R0lGODlhUABQAPcAABgICC9vcTw6MC+jtKlvVHg7KcGLayQiG4BXRLR2bGEj
...
--_----------=_128097394742080--
);
}
DESCRIPTION
The Module is designed to stress any MTA with different files, senders and recipients.
METHODS
new
my $mailer = Mail::Send::Loop->new(option => 'value', ...);
Create an Email Client. Other functions can override some parameters.
Options:
debug
Print all SMTP conversation
mail_host
MTA's IP
mail_port
MTA's Port. The default port is 25 if not given.
greeting
HELO greeting. The default domain is 'test.net' if not given.
senders
Users set for 'MAIL FROM'. It takes an ARRAY reference.
recipients
Users set for 'RCPT TO'. It takes an ARRAY reference.
mail_mode
1tom: One TCP connection to MTA is used to send MANY emails.
1to1: One TCP connection to MTA is used to send ONE email.
mail_count
Stop sending email after specified number of emails sent
-1: Keep sending emails endlessly
setDebug
$mailer->setDebug(1);
1/0: Enable/Disable SMTP conversation information
emailMode
$mailer->emailMode()
Print current email Mode or Set it to 1to1/1tom.
sendMail_AllFilesInFolder
$mailer->sendMail_AllFilesInFolder(option => 'value', ...);
Options:
mail_folder
All files in this specified folder will be sent one by one as an attachment. EML file is sent as-it. Other files will be MIME-encrypted first based on LWP/media.types, and then sent out. Each email has only One attachment.
mail_mode
1tom: One TCP connection to MTA is used to send MANY emails.
1to1: One TCP connection to MTA is used to send ONE email.
mail_subject
Static subject for each email
mail_txt_body
Static email text body
greeting
HELO greeting
senders
Users set for 'MAIL FROM'. It takes an ARRAY reference.
recipients
Users set for 'RCPT TO'. It takes an ARRAY reference.
mail_count
Stop sending email after specified number of emails sent
sendMail_LoopAllUsers
$mailer->sendMail_LoopAllUsers(option => 'value', ...);
Send SAME email to all users.
Options:
mail_body
It takes text string that can be prepared MIME-encrypted email content.
mail_mode
1tom: One TCP connection to MTA is used to send MANY emails.
1to1: One TCP connection to MTA is used to send ONE email.
greeting
HELO greeting
senders
Users set for 'MAIL FROM'. It takes an ARRAY reference.
recipients
Users set for 'RCPT TO'. It takes an ARRAY reference.
mail_count
Stop sending email after specified number of emails sent
sendMail_EML
$mailer->sendMail_EML($eml, $mailfrom, $mailto);
Send one specified EML email file
Options:
$eml
EML file's path
$mailfrom
MAIL FROM email address
$mailto
RCPT TO email address
SEE ALSO
Please, see MIME::Lite.
AUTHOR
Jing Kang <kxj@hotmail.com>
COPYRIGHT AND LICENSE
Copyright (C) 2010 by jkang
This library is free software.