📄 sendmail.php
字号:
<?php/** * This is the Sendmail handler for Swift Mailer, a PHP Mailer class. * * @package Swift * @version >= 2.0.0 * @author Chris Corbyn * @date 30th July 2006 * @license http://www.gnu.org/licenses/lgpl.txt Lesser GNU Public License * * @copyright Copyright © 2006 Chris Corbyn - All Rights Reserved. * @filesource * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to * * The Free Software Foundation, Inc., * 51 Franklin Street, * Fifth Floor, * Boston, * MA 02110-1301 USA * * "Chris Corbyn" <chris@w3style.co.uk> * */if (!defined('SWIFT_AUTO_DETECT')) define('SWIFT_AUTO_DETECT', -2);/** * Sendmail Connection Class. * Connects to a local binary MTA and stores the connections internally * @package Swift */class Swift_Connection_Sendmail implements Swift_IConnection{ /** * Sendmail Command (full path and arguments) * This can be a different MTA that behaves like sendmail * Exim works here. * @var string command */ public $command = "/usr/sbin/sendmail -bs"; /** * Sendmail Process handle * @var resource handle */ public $handle; /** * Process Pipes from proc_open() * @var array pipes */ public $pipes; /** * MTA Read part of I/O for Swift * @var resource socket (reference) */ public $readHook; /** * MTA Write part of I/O for Swift * @var resource socket (reference) */ public $writeHook; /** * If the server is connected to the MTA. * @var bool connected */ public $connected = false; /** * Constructor * @param string Sendmail command, optional */ public function __construct($command=false) { if ($command == SWIFT_AUTO_DETECT) $command = @trim(`which sendmail`).' -bs'; if ($command) $this->command = $command; } /** * Establishes a connection with the MTA * The SwiftInstance Object calls this * * @return bool connected */ public function start() { return $this->initializeProcess(); } /** * Establishes a connection with the MTA * * @return bool connected */ public function initializeProcess() { $pipes_spec = array( array("pipe", "r"), array("pipe", "w"), array("pipe", "w") ); $this->handle = @proc_open($this->command, $pipes_spec, $this->pipes); $this->writeHook =& $this->pipes[0]; $this->readHook =& $this->pipes[1]; if (!$this->handle) return $this->connected = false; else return $this->connected = true; } /** * Closes the connection with the MTA * Called by the SwiftInstance object * * @return void */ public function stop() { $this->closeProcess(); } /** * Closes the connection with the MTA * * @return void */ protected function closeProcess() { foreach ($this->pipes as $pipe) fclose($pipe); if ($this->handle && $this->connected) { proc_close($this->handle); $this->writeHook = false; $this->readHook = false; $this->connected = false; } } /** * Returns TRUE if we're connected to the MTA */ public function isConnected() { return $this->connected; }}?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -