diff options
Diffstat (limited to 'system/helpers/email.php')
-rw-r--r-- | system/helpers/email.php | 181 |
1 files changed, 0 insertions, 181 deletions
diff --git a/system/helpers/email.php b/system/helpers/email.php deleted file mode 100644 index fb222d0c..00000000 --- a/system/helpers/email.php +++ /dev/null @@ -1,181 +0,0 @@ -<?php defined('SYSPATH') OR die('No direct access allowed.'); -/** - * Email helper class. - * - * $Id: email.php 3769 2008-12-15 00:48:56Z zombor $ - * - * @package Core - * @author Kohana Team - * @copyright (c) 2007-2008 Kohana Team - * @license http://kohanaphp.com/license.html - */ -class email_Core { - - // SwiftMailer instance - protected static $mail; - - /** - * Creates a SwiftMailer instance. - * - * @param string DSN connection string - * @return object Swift object - */ - public static function connect($config = NULL) - { - if ( ! class_exists('Swift', FALSE)) - { - // Load SwiftMailer - require Kohana::find_file('vendor', 'swift/Swift'); - - // Register the Swift ClassLoader as an autoload - spl_autoload_register(array('Swift_ClassLoader', 'load')); - } - - // Load default configuration - ($config === NULL) and $config = Kohana::config('email'); - - switch ($config['driver']) - { - case 'smtp': - // Set port - $port = empty($config['options']['port']) ? NULL : (int) $config['options']['port']; - - if (empty($config['options']['encryption'])) - { - // No encryption - $encryption = Swift_Connection_SMTP::ENC_OFF; - } - else - { - // Set encryption - switch (strtolower($config['options']['encryption'])) - { - case 'tls': $encryption = Swift_Connection_SMTP::ENC_TLS; break; - case 'ssl': $encryption = Swift_Connection_SMTP::ENC_SSL; break; - } - } - - // Create a SMTP connection - $connection = new Swift_Connection_SMTP($config['options']['hostname'], $port, $encryption); - - // Do authentication, if part of the DSN - empty($config['options']['username']) or $connection->setUsername($config['options']['username']); - empty($config['options']['password']) or $connection->setPassword($config['options']['password']); - - if ( ! empty($config['options']['auth'])) - { - // Get the class name and params - list ($class, $params) = arr::callback_string($config['options']['auth']); - - if ($class === 'PopB4Smtp') - { - // Load the PopB4Smtp class manually, due to its odd filename - require Kohana::find_file('vendor', 'swift/Swift/Authenticator/$PopB4Smtp$'); - } - - // Prepare the class name for auto-loading - $class = 'Swift_Authenticator_'.$class; - - // Attach the authenticator - $connection->attachAuthenticator(($params === NULL) ? new $class : new $class($params[0])); - } - - // Set the timeout to 5 seconds - $connection->setTimeout(empty($config['options']['timeout']) ? 5 : (int) $config['options']['timeout']); - break; - case 'sendmail': - // Create a sendmail connection - $connection = new Swift_Connection_Sendmail - ( - empty($config['options']) ? Swift_Connection_Sendmail::AUTO_DETECT : $config['options'] - ); - - // Set the timeout to 5 seconds - $connection->setTimeout(5); - break; - default: - // Use the native connection - $connection = new Swift_Connection_NativeMail($config['options']); - break; - } - - // Create the SwiftMailer instance - return email::$mail = new Swift($connection); - } - - /** - * Send an email message. - * - * @param string|array recipient email (and name), or an array of To, Cc, Bcc names - * @param string|array sender email (and name) - * @param string message subject - * @param string message body - * @param boolean send email as HTML - * @return integer number of emails sent - */ - public static function send($to, $from, $subject, $message, $html = FALSE) - { - // Connect to SwiftMailer - (email::$mail === NULL) and email::connect(); - - // Determine the message type - $html = ($html === TRUE) ? 'text/html' : 'text/plain'; - - // Create the message - $message = new Swift_Message($subject, $message, $html, '8bit', 'utf-8'); - - if (is_string($to)) - { - // Single recipient - $recipients = new Swift_Address($to); - } - elseif (is_array($to)) - { - if (isset($to[0]) AND isset($to[1])) - { - // Create To: address set - $to = array('to' => $to); - } - - // Create a list of recipients - $recipients = new Swift_RecipientList; - - foreach ($to as $method => $set) - { - if ( ! in_array($method, array('to', 'cc', 'bcc'))) - { - // Use To: by default - $method = 'to'; - } - - // Create method name - $method = 'add'.ucfirst($method); - - if (is_array($set)) - { - // Add a recipient with name - $recipients->$method($set[0], $set[1]); - } - else - { - // Add a recipient without name - $recipients->$method($set); - } - } - } - - if (is_string($from)) - { - // From without a name - $from = new Swift_Address($from); - } - elseif (is_array($from)) - { - // From with a name - $from = new Swift_Address($from[0], $from[1]); - } - - return email::$mail->send($message, $recipients, $from); - } - -} // End email
\ No newline at end of file |