Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

94 lines (88 sloc) 2.895 kb
<?php
/**
* MUA (Mail User Agent) implementation using the PHP built-in mail() function.
*
* PHP Version 5.2
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
* License for the specific language governing rights and limitations
* under the License.
*
* @category phpMyFAQ
* @package PMF_Mail
* @author Matteo Scaramuccia <matteo@phpmyfaq.de>
* @copyright 2009-2010 phpMyFAQ Team
* @license http://www.mozilla.org/MPL/MPL-1.1.html Mozilla Public License Version 1.1
* @link http://www.phpmyfaq.de
* @since 2009-09-11
*/
if (!defined('IS_VALID_PHPMYFAQ')) {
exit();
}
/**
* PMF_Mail_Builtin
*
* @category phpMyFAQ
* @package PMF_Mail
* @author Matteo Scaramuccia <matteo@phpmyfaq.de>
* @copyright 2009-2010 phpMyFAQ Team
* @license http://www.mozilla.org/MPL/MPL-1.1.html Mozilla Public License Version 1.1
* @link http://www.phpmyfaq.de
* @since 2009-09-11
*/
class PMF_Mail_Builtin implements PMF_Mail_IMUA
{
/**
* Send the message using an e-mail through the PHP bult-in mail() function.
*
* @param string $recipients Recipients of the e-mail as a comma-separated list
* of RFC 2822 compliant items
* @param array $headers Headers of the e-mail
* @param string $body Body of the e-mail
* @return bool True if successful, false otherwise.
*/
public function send($recipients, $headers, $body)
{
// Get the subject of the e-mail, RFC 2047 compliant
$subject = $headers['Subject'];
$headers['Subject'] = null;
unset($headers['Subject']);
$sender = '';
if (('WIN' !== strtoupper(substr(PHP_OS, 0, 3))) && !ini_get('safe_mode')) {
$sender = str_replace(
array('<', '>'),
'',
$headers['Return-Path']
);
unset($headers['Return-Path']);
}
// Prepare the headers for the e-mail
$mailHeaders = '';
foreach ($headers as $key => $value) {
$mailHeaders .= $key.': '.$value."\r\n";
}
// Send the e-mail
if (empty($sender)) {
return mail(
$recipients,
$subject,
$body,
$mailHeaders
);
} else {
return mail(
$recipients,
$subject,
$body,
$mailHeaders,
'-f'.$sender
);
}
}
}
Jump to Line
Something went wrong with that request. Please try again.