<?php
/**
 * phpaga
 *
 * Mail-related functionality.
 *
 * This file contains the necessary routines to send emails.
 *
 * @author Florian Lanthaler <florian@phpaga.net>
 * @version $Id: mail.php 653 2005-10-03 21:53:26Z worf $
 *
 * Copyright (c) 2003, Florian Lanthaler <florian@phpaga.net>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
 * met:
 *
 *    * Redistributions of source code must retain the above copyright
 *      notice, this list of conditions and the following disclaimer.
 *
 *    * Redistributions in binary form must reproduce the above copyright
 *      notice, this list of conditions and the following disclaimer in
 *      the documentation and/or other materials provided with the
 *      distribution.
 *
 *    * Neither the name of Florian Lanthaler nor the names of his
 *      contributors may be used to endorse or promote products derived
 *      from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

/**
 * Sends a message.
 *
 * @param array  $headers       Message headers
 * @param string $body          Message body
 *
 * @return int   $result  A result code.
 *
 * @author Florian Lanthaler <florian@phpaga.net>
 * @since phpaga 0.2
 */

function phpaga_mail_send ($headers, $body)
{

    global $phpaga_mail_param;

    $recipients = "";

    if (!isset($headers) || !is_array($headers))
        $headers = array();

    $headers["X-Mailer"] = "phpaga";

    if (!isset($headers["From"]) || !strlen($headers["From"]) || ($headers["From"] == null))
    {
        if (defined("PHPAGA_MAIL_DEFAULTFROM") && strlen(PHPAGA_MAIL_DEFAULTFROM))
            $headers["From"] = PHPAGA_MAIL_DEFAULTFROM;
        else
            $headers["From"] = "noreply";
    }

    if (isset($headers["To"]) && strlen($headers["To"]))
        $recipients = $headers["To"];

    $mail_object =& Mail::factory(strtolower(PHPAGA_MAIL_BACKEND),
                                  $phpaga_mail_param);

    if (Pear::isError($mail_object))
    {
        if(defined("PHPAGA_ERR_VERBOSE") && (PHPAGA_ERR_VERBOSE == true))
            phpaga_error($db->getDebugInfo());

        return PHPAGA_ERR_SEND_MAIL;
    }
    else
    {
        $mail_object->send($recipients, $headers, $body);
        return PHPAGA_ERR_NONE;
    }
}

/**
 * Checks whether mail notifications are enabled.
 *
 *
 * @return bool   $enabled   TRUE if notifications are enabled, false
 *                           otherwise.
 *
 * @author Florian Lanthaler <florian@phpaga.net>
 * @since phpaga 0.3
 */

function phpaga_mail_enabled ()
{
    return(defined("PHPAGA_MAIL_ENABLED" && PHPAGA_MAIL_ENABLED));
}

/**
 * Fetch a particular mail template.
 *
 * @return  bool   $template   If the mail template file exists and is
 *                             readable, its contents are returned, otherwise
 *                             FALSE is returned
 *
 * @author Florian Lanthaler <florian@phpaga.net>
 * @since phpaga 0.3
 */

function phpaga_mail_gettemplate ($name)
{
    if (file_exists(PHPAGA_MAILTPLPATH.$name) && is_readable(PHPAGA_MAILTPLPATH.$name))
        return(file_get_contents(PHPAGA_MAILTPLPATH.$name));
    else
        return false;
}

?>