private function sendUsingPHP ()
    {

        // Construct Headers

        $headers	= $this->constructHeaders ();

        // Get template resource

        $tpl	= \Sonic\Sonic::getResource ('tpl');

        // Set smarty template status

        $smarty	= $tpl instanceof \Smarty;

        // If we have a smarty template object

        if ($smarty)
        {

            // Get caching status

            $smartyPrevCache	= $tpl->caching;

            // Disable caching

            $tpl->setCaching (FALSE);

        }

        // For each recipient

        foreach ($this->_recipients as $recipient)
        {

            // Send email

            try
            {

                // Check to make sure the recipients email address is valid

                Parser::_validateEmail ($recipient['email']);

                // Set recipient

                if (isset($recipient['name'])) {
                    $recipientTo = $recipient['name'] . '<' . $recipient['email'] . '>';
                } else {
                    $recipientTo = $recipient['email'];
                }

                // Add recipient header to original headers

                $emailHeaders	= $headers . 'To: ' . $recipientTo . $this->_nl;

                // If we're using smarty

                if ($smarty)
                {

                    // Clear variables

                    $tpl->clearAllAssign ();

                    // Assign variables

                    $tpl->assign ('recipient', $recipient);

                    // Fetch

                    $emailMessage	= $tpl->fetch ('string:' . $this->_message);

                }

                // Else we're not using smarty

                else
                {

                    // Just leave the message as it is

                    $emailMessage	= $this->_message;

                }

                // Send Message

                if (!mail ($recipientTo, $this->_subject, $emailMessage, $emailHeaders))
                {

                    // Add error and return FALSE

                    new \Sonic\Message ('error', 'Cannot send message to: ' . $recipient['email']);

                    // return FALSE

                    return FALSE;

                }

                if (is_callable($this->_callbackMethod))
                {
                    call_user_func ($this->_callbackMethod, $this->_subject, $recipientTo, $this->_fromAddress, $emailMessage);
                }


                // If we're logging the email

                if ($this->logFlag)
                {

                    // Log

                    $this->Log ($recipient['email'], $emailHeaders, $emailMessage, 'phpmail');

                }

            }

                // Else the email address is not valid

            catch (Parser\Exception $e)
            {

                // Add error

                new \Sonic\Message ('error', 'Invalid recipient email address: ' . $recipient['email']);

                // Skip to next recipient

                continue;

            }

        }

        // If we're using smarty

        if ($smarty)
        {

            // Set caching status

            $tpl->caching	= $smartyPrevCache;

        }

        // Return TRUE

        return TRUE;

    }