smtp.inc.t

来自「eGroupWare is a multi-user, web-based gr」· T 代码 · 共 138 行

T
138
字号
<?php/**************************************************************************** copyright            : (C) 2001-2003 Advanced Internet Designs Inc.* email                : forum@prohost.org* $Id: smtp.inc.t,v 1.2 2003/12/18 18:20:49 iliaa Exp $** This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or * (at your option) any later version.***************************************************************************/class fud_smtp{	var $fs, $last_ret, $msg, $subject, $to, $from, $headers;	function get_return_code($cmp_code='250')	{		if (!($this->last_ret = fgets($this->fs, 1024))) {			return;		}		if (substr($this->last_ret, 0, 3) == $cmp_code) {			return 1;		}		return;	}	function wts($string)	{		fwrite($this->fs, $string . "\r\n");	}	function open_smtp_connex()	{		if( !($this->fs = fsockopen($GLOBALS['FUD_SMTP_SERVER'], 25, $errno, $errstr, $GLOBALS['FUD_SMTP_TIMEOUT'])) ) {			exit("ERROR: stmp server at ".$GLOBALS['FUD_SMTP_SERVER']." is not avaliable<br>\nAdditional Problem Info: $errno -> $errstr <br>\n");		}		if (!$this->get_return_code(220)) {			return;		}		$this->wts("HELO ".$GLOBALS['FUD_SMTP_SERVER']);		if (!$this->get_return_code()) {			return;		}		/* Do SMTP Auth if needed */		if ($GLOBALS['FUD_SMTP_LOGIN']) {			$this->wts('AUTH LOGIN');			if (!$this->get_return_code(334)) {				return;			}			$this->wts(base64_encode($GLOBALS['FUD_SMTP_LOGIN']));			if (!$this->get_return_code(334)) {				return;			}			$this->wts(base64_encode($GLOBALS['FUD_SMTP_PASS']));			if (!$this->get_return_code(235)) {				return;			}		}		return 1;	}	function send_from_hdr()	{		$this->wts('MAIL FROM: <'.$GLOBALS['NOTIFY_FROM'].'>');		return $this->get_return_code();	}	function send_to_hdr()	{		if (!@is_array($this->to)) {			$this->to = array($this->to);		}		foreach ($this->to as $to_addr) {			$this->wts('RCPT TO: <'.$to_addr.'>');			if (!$this->get_return_code()) {				return;			}		}		return 1;	}	function send_data()	{		$this->wts('DATA');		if (!$this->get_return_code(354)) {			return;		}		/* This is done to ensure what we comply with RFC requiring each line to end with \r\n */		$this->msg = preg_replace("!(\r)?\n!si", "\r\n", $this->msg);		if( empty($this->from) ) $this->from = $GLOBALS['NOTIFY_FROM'];		$this->wts('Subject: '.$this->subject);		$this->wts('Date: '.date("r"));		$this->wts('To: '.(count($this->to) == 1 ? $this->to[0] : $GLOBALS['NOTIFY_FROM']));		$this->wts('From: '.$this->from);		$this->wts('X-Mailer: FUDforum v'.$GLOBALS['FORUM_VERSION']);		$this->wts($this->headers."\r\n");		$this->wts($this->msg);		$this->wts('.');		return $this->get_return_code();	}	function close_connex()	{		$this->wts('quit');		fclose($this->fs);	}	function send_smtp_email()	{		if (!$this->open_smtp_connex()) {			exit("Invalid STMP return code: ".$this->last_ret."<br>\n");		}		if (!$this->send_from_hdr()) {			$this->close_connex();			exit("Invalid STMP return code: ".$this->last_ret."<br>\n");		}		if (!$this->send_to_hdr()) {			$this->close_connex();			exit("Invalid STMP return code: ".$this->last_ret."<br>\n");		}		if (!$this->send_data()) {			$this->close_connex();			exit("Invalid STMP return code: ".$this->last_ret."<br>\n");		}		$this->close_connex();	}}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?