diff --git a/autoload.inc b/autoload.inc new file mode 100644 index 0000000..4d1a123 --- /dev/null +++ b/autoload.inc @@ -0,0 +1,3 @@ +address = $this->_splitAddresses($this->address)); if ($this->address === false || isset($this->error)) { - require_once 'PEAR.php'; + //require_once 'PEAR.php'; return PEAR::raiseError($this->error); } diff --git a/Pear/Mail/Mail/mail.php b/lib/Pear/Mail/Mail/mail.php similarity index 100% rename from Pear/Mail/Mail/mail.php rename to lib/Pear/Mail/Mail/mail.php diff --git a/Pear/Mail/Mail/mock.php b/lib/Pear/Mail/Mail/mock.php similarity index 100% rename from Pear/Mail/Mail/mock.php rename to lib/Pear/Mail/Mail/mock.php diff --git a/Pear/Mail/Mail/null.php b/lib/Pear/Mail/Mail/null.php similarity index 100% rename from Pear/Mail/Mail/null.php rename to lib/Pear/Mail/Mail/null.php diff --git a/Pear/Mail/Mail/sendmail.php b/lib/Pear/Mail/Mail/sendmail.php similarity index 100% rename from Pear/Mail/Mail/sendmail.php rename to lib/Pear/Mail/Mail/sendmail.php diff --git a/Pear/Mail/Mail/smtp.php b/lib/Pear/Mail/Mail/smtp.php similarity index 100% rename from Pear/Mail/Mail/smtp.php rename to lib/Pear/Mail/Mail/smtp.php diff --git a/Pear/Mail/Mail/smtpmx.php b/lib/Pear/Mail/Mail/smtpmx.php similarity index 100% rename from Pear/Mail/Mail/smtpmx.php rename to lib/Pear/Mail/Mail/smtpmx.php diff --git a/Pear/Mail/README.rst b/lib/Pear/Mail/README.rst similarity index 100% rename from Pear/Mail/README.rst rename to lib/Pear/Mail/README.rst diff --git a/Pear/Mail/composer.json b/lib/Pear/Mail/composer.json similarity index 100% rename from Pear/Mail/composer.json rename to lib/Pear/Mail/composer.json diff --git a/Pear/Mail/mime.php b/lib/Pear/Mail/mime.php similarity index 100% rename from Pear/Mail/mime.php rename to lib/Pear/Mail/mime.php diff --git a/Pear/Mail/mimePart.php b/lib/Pear/Mail/mimePart.php similarity index 100% rename from Pear/Mail/mimePart.php rename to lib/Pear/Mail/mimePart.php diff --git a/Pear/Mail/package.xml b/lib/Pear/Mail/package.xml similarity index 100% rename from Pear/Mail/package.xml rename to lib/Pear/Mail/package.xml diff --git a/Pear/Mail/tests/13659.phpt b/lib/Pear/Mail/tests/13659.phpt similarity index 100% rename from Pear/Mail/tests/13659.phpt rename to lib/Pear/Mail/tests/13659.phpt diff --git a/Pear/Mail/tests/9137.phpt b/lib/Pear/Mail/tests/9137.phpt similarity index 100% rename from Pear/Mail/tests/9137.phpt rename to lib/Pear/Mail/tests/9137.phpt diff --git a/Pear/Mail/tests/9137_2.phpt b/lib/Pear/Mail/tests/9137_2.phpt similarity index 100% rename from Pear/Mail/tests/9137_2.phpt rename to lib/Pear/Mail/tests/9137_2.phpt diff --git a/Pear/Mail/tests/Makefile b/lib/Pear/Mail/tests/Makefile similarity index 100% rename from Pear/Mail/tests/Makefile rename to lib/Pear/Mail/tests/Makefile diff --git a/Pear/Mail/tests/bug17178.phpt b/lib/Pear/Mail/tests/bug17178.phpt similarity index 100% rename from Pear/Mail/tests/bug17178.phpt rename to lib/Pear/Mail/tests/bug17178.phpt diff --git a/Pear/Mail/tests/bug17317.phpt b/lib/Pear/Mail/tests/bug17317.phpt similarity index 100% rename from Pear/Mail/tests/bug17317.phpt rename to lib/Pear/Mail/tests/bug17317.phpt diff --git a/Pear/Mail/tests/rfc822.phpt b/lib/Pear/Mail/tests/rfc822.phpt similarity index 100% rename from Pear/Mail/tests/rfc822.phpt rename to lib/Pear/Mail/tests/rfc822.phpt diff --git a/Pear/Mail/tests/smtp_error.phpt b/lib/Pear/Mail/tests/smtp_error.phpt similarity index 100% rename from Pear/Mail/tests/smtp_error.phpt rename to lib/Pear/Mail/tests/smtp_error.phpt diff --git a/Pear/Mail/tests/validateQuotedString.phpt b/lib/Pear/Mail/tests/validateQuotedString.phpt similarity index 100% rename from Pear/Mail/tests/validateQuotedString.phpt rename to lib/Pear/Mail/tests/validateQuotedString.phpt diff --git a/Pear/Net/SMTP.php b/lib/Pear/Net/SMTP.php similarity index 100% rename from Pear/Net/SMTP.php rename to lib/Pear/Net/SMTP.php diff --git a/Pear/Net/Socket.php b/lib/Pear/Net/Socket.php similarity index 100% rename from Pear/Net/Socket.php rename to lib/Pear/Net/Socket.php diff --git a/Pear/PEAR.php b/lib/Pear/PEAR.php similarity index 100% rename from Pear/PEAR.php rename to lib/Pear/PEAR.php diff --git a/mailcannon.cli.php b/lib/mailcannon.cli.php similarity index 100% rename from mailcannon.cli.php rename to lib/mailcannon.cli.php diff --git a/mailcannon.php b/lib/mailcannon.php similarity index 70% rename from mailcannon.php rename to lib/mailcannon.php index b3cccd3..295e583 100644 --- a/mailcannon.php +++ b/lib/mailcannon.php @@ -5,7 +5,45 @@ require_once(dirname(__FILE__).'/Pear/Mail/mime.php'); require_once(dirname(__FILE__).'/Pear/Net/SMTP.php'); class mailcannon { - public static function fire($bcc,$delay,$from,$subject,$html_file,$text_file,$member_list,$unsubscribe_list,$images,$attachments,$replacements,$smtp = null,$silent = false){ + public static function send($smtp,$from,$to,$subject,$text,$html,$images,$attachments){ + if($smtp){ + $mail = Mail::factory('smtp', $smtp); + } else { + $mail = Mail::factory('mail');} + + $mime = new Mail_mime("\n"); + if($text){ + $mime->setTXTBody($text);} + if($html){ + $mime->setHTMLBody($html);} + + // attach images + foreach($images as $name=>$image){ + $mime->addHTMLImage($image, 'image/png', $name, true, $name);} + // attach files + foreach($attachments as $name=>$attachment){ + $mime->addAttachment($attachment,'application/pdf',$name);} + + $mime_params = array( 'text_encoding' => '7bit', + 'text_charset' => 'UTF-8', + 'html_charset' => 'UTF-8', + 'head_charset' => 'UTF-8'); + + $body = $mime->get($mime_params); + $hdrs = $mime->headers(array( 'From' => $from, + 'Subject' => $subject, + 'Reply-to' => $from, + 'Return-Path' => $from, + 'Message-ID' => self::generateMessageID(), + 'Date' => date('r', time()))); + + $recipients = array( 'To' => $to); + $succ = $mail->send($recipients, $hdrs, $body); + if (PEAR::isError($succ)) { + throw new \SYSTEM\LOG\ERROR('Error Sending HTML message to ' . $to . ' ' . $succ->getMessage());} + } + + public static function fire($delay,$from,$subject,$html_file,$text_file,$member_list,$unsubscribe_list,$images,$attachments,$replacements,$smtp = null,$silent = false){ $silent ? null : print "Sending from ".$from." - '".$subject."'\n"; if(!$member_list){ @@ -114,54 +152,11 @@ class mailcannon { } $text = @preg_replace($preg_search, $preg_replace, $text); $html = @preg_replace($preg_search, $preg_replace, $html); - - //Send mail - $mime = new Mail_mime("\n"); - if($text){ - $mime->setTXTBody($text); - } - // attach images - foreach($images as $name=>$image){ - $mime->addHTMLImage($image, 'image/png', $name, true, $name);} - // attach other - foreach($attachments as $name=>$attachment){ - $mime->addAttachment($attachment,'application/pdf',$name);} - - if($html){ - $mime->setHTMLBody($html);} - - $mime_params = array( 'text_encoding' => '7bit', - 'text_charset' => 'UTF-8', - 'html_charset' => 'UTF-8', - 'head_charset' => 'UTF-8'); - - $body = $mime->get($mime_params); - $hdrs = $mime->headers(array( 'From' => $from, - 'Subject' => $subject, - 'Reply-to' => $from, - 'Return-Path' => $from, - 'Message-ID' => self::generateMessageID(), - 'Date' => date('r', time()))); - - $recipients = array( 'To' => $to); - $succ = $mail->send($recipients, $hdrs, $body); - if (PEAR::isError($succ)) { - print 'Error Sending HTML message to ' . $to . ' ' . $succ->getMessage() . "\n"; - } else { - if($unsubscribe_list) { - file_put_contents($unsubscribe_list, $to.PHP_EOL , FILE_APPEND | LOCK_EX); - } - if($html){ - $silent ? null : print 'Sending HTML message to ' . $to . "\n"; - } else { - $silent ? null : print 'Sending TXT message to ' . $to . "\n"; - } - } + + self::send($smtp,$from,$to,$subject,$text,$html,$images,$attachments); $count += 1; sleep($delay); } - $silent ? null : print "Sent " . $count . " emails\n"; - $silent ? null : print "Done\n"; } /** diff --git a/lib_mail_cannon.php b/lib_mail_cannon.php new file mode 100644 index 0000000..5005a19 --- /dev/null +++ b/lib_mail_cannon.php @@ -0,0 +1,11 @@ +