/
home
/
desid573
/
public_html
/
/home/desid573/public_html
mkdir
upload
Name
Size
Mode
Actions
.well-known/
-
0755
rm
angel/
-
0755
rm
app/
-
0755
rm
assets/
-
0755
rm
cgi-bin/
-
0755
rm
drivers/
-
0755
rm
eway/
-
0755
rm
family/
-
0755
rm
fc_api/
-
0755
rm
gcdriver/
-
0755
rm
google/
-
0755
rm
hooks/
-
0755
rm
ims/
-
0755
rm
ims2/
-
0755
rm
ims3/
-
0755
rm
magicride.ng/
-
0750
rm
Mini-Inventory-and-Sales-Management-System-master/
-
0755
rm
old/
-
0755
rm
payment/
-
0755
rm
smee-client-master/
-
0755
rm
tester/
-
0755
rm
test_api/
-
0755
rm
tollster/
-
0755
rm
verde/
-
0755
rm
.ftpquota
18
0644
edit
dl
rm
.htaccess
1595
0644
edit
dl
rm
.user.ini
623
0644
edit
dl
rm
10.php
1941
0644
edit
dl
rm
11.php
1776
0644
edit
dl
rm
12.php
1112
0644
edit
dl
rm
400.shtml
990
0644
edit
dl
rm
401.shtml
1005
0644
edit
dl
rm
403.shtml
966
0644
edit
dl
rm
404.shtml
967
0644
edit
dl
rm
405.shtml
975
0644
edit
dl
rm
406.shtml
906
0644
edit
dl
rm
500.shtml
963
0644
edit
dl
rm
addDate.php
1438
0644
edit
dl
rm
app.zip
2365189
0644
edit
dl
rm
appoff.php
4797
0644
edit
dl
rm
a_index.php
15145
0644
edit
dl
rm
a_index1.php
15566
0644
edit
dl
rm
a_name_address.php
1010
0644
edit
dl
rm
a_thankyou.php
13211
0644
edit
dl
rm
cancel.php
8118
0644
edit
dl
rm
cancelJob.php
1162
0644
edit
dl
rm
checkDDPrice.php
1101
0644
edit
dl
rm
checker.php
694
0644
edit
dl
rm
class.phpmailer.php
80046
0644
edit
dl
rm
class.pop3.php
10385
0644
edit
dl
rm
class.smtp.php
24586
0644
edit
dl
rm
cleanUpSpatula.php
1617
0644
edit
dl
rm
confirm_check.php
6257
0644
edit
dl
rm
cpmove-desid573.tar.gz
6864557031
0644
edit
dl
rm
createcode.php
846
0644
edit
dl
rm
customer_address.php
1091
0644
edit
dl
rm
customer_delete.php
836
0644
edit
dl
rm
customer_index.php
9620
0644
edit
dl
rm
customer_update.php
1311
0644
edit
dl
rm
deleteDate.php
550
0644
edit
dl
rm
deleteprocess.php
2405
0644
edit
dl
rm
desidrivers.com.au_1608920241.php
5940
0644
edit
dl
rm
desidrivers.com.au_1609828175.php
5940
0644
edit
dl
rm
desidrivers.com.au_1616868643.php
5940
0644
edit
dl
rm
desidrivers.com.au_1637301975.php
5940
0644
edit
dl
rm
desidrivers.com.au_1639152857.php
5940
0644
edit
dl
rm
desidrivers.com.au_1641233330.php
5940
0644
edit
dl
rm
desidrivers.com.au_1641319578.php
5940
0644
edit
dl
rm
desidrivers.com.au_1647540767.php
5940
0644
edit
dl
rm
desidrivers.com.au_1650434806.php
5940
0644
edit
dl
rm
desidrivers.com.au_1650910031.php
5940
0644
edit
dl
rm
desidrivers.com.au_1653458783.php
5940
0644
edit
dl
rm
desidrivers.com.au_1660370822.php
5940
0644
edit
dl
rm
desidrivers.com.au_1670936136.php
5940
0644
edit
dl
rm
desidrivers.com.au_1677823585.php
5940
0644
edit
dl
rm
desidrivers.com.au_1681538797.php
5940
0644
edit
dl
rm
desidrivers.com.au_1689358025.php
5940
0644
edit
dl
rm
desidrivers.com.au_1730311693.php
5940
0644
edit
dl
rm
desidrivers.com.au_1735236463.php
5940
0644
edit
dl
rm
desidrivers.com.au_1735711647.php
5940
0644
edit
dl
rm
desidrivers.com.au_1743185292.php
5940
0644
edit
dl
rm
desidrivers.com.au_1743833158.php
5940
0644
edit
dl
rm
desidrivers.com.au_1746943553.php
5940
0644
edit
dl
rm
desidrivers.com.au_1750701953.php
5940
0644
edit
dl
rm
desidrivers.com.au_1752818776.php
5940
0644
edit
dl
rm
desidrivers.com.au_1753164358.php
5940
0644
edit
dl
rm
desidrivers.com.au_1753553154.php
5940
0644
edit
dl
rm
desidrivers.com.au_1753596377.php
5940
0644
edit
dl
rm
desidrivers.com.au_1756836372.php
5940
0644
edit
dl
rm
desidrivers.com.au_1758909980.php
5940
0644
edit
dl
rm
desidrivers.com.au_1760292383.php
5940
0644
edit
dl
rm
desidrivers.com.au_1761113162.php
5940
0644
edit
dl
rm
desidrivers.com.au_1761199577.php
5940
0644
edit
dl
rm
desidrivers.com.au_1762884366.php
5940
0644
edit
dl
rm
desidrivers.com.au_1764439552.php
5940
0644
edit
dl
rm
desidrivers.com.au_1765044452.php
5940
0644
edit
dl
rm
desidrivers.com.au_1765436459.php
5940
0644
edit
dl
rm
desidrivers.com.au_1765865163.php
5940
0644
edit
dl
rm
desidrivers.com.au_1769883052.php
5940
0644
edit
dl
rm
desidrivers.com.au_1770357976.php
5940
0644
edit
dl
rm
desidrivers.com.au_1771092507.php
5940
0644
edit
dl
rm
desidrivers.com.au_1772301949.php
5940
0644
edit
dl
rm
desidrivers.com.au_1773641731.php
5940
0644
edit
dl
rm
desidrivers.com.au_1775066775.php
5940
0644
edit
dl
rm
desis.zip
53287223
0644
edit
dl
rm
dispatch.php
2326
0644
edit
dl
rm
error_log
12804526
0644
edit
dl
rm
error_log_250913
29612275
0644
edit
dl
rm
error_log_251117
16736601
0644
edit
dl
rm
error_log_260603
37979880
0644
edit
dl
rm
familyPrice.php
4548
0644
edit
dl
rm
favicon.ico
1150
0644
edit
dl
rm
google0826623ce41a5365.html
53
0644
edit
dl
rm
holidays.php
5369
0644
edit
dl
rm
ims-master.zip
35927391
0644
edit
dl
rm
jobcancel.php
18105
0644
edit
dl
rm
job_index_results.php
6939
0644
edit
dl
rm
json-test.php
276
0644
edit
dl
rm
listen.php
70
0644
edit
dl
rm
magic_logo.jpg
80980
0644
edit
dl
rm
newcode.php
4532
0644
edit
dl
rm
newJob.php
9199
0644
edit
dl
rm
newjob_index.php
6073
0644
edit
dl
rm
new_spatula_job.php
24849
0644
edit
dl
rm
off.php
3283
0644
edit
dl
rm
onboard.php
7327
0644
edit
dl
rm
oops.php
3722
0644
edit
dl
rm
php.ini
617
0644
edit
dl
rm
postcode_array.php
0
0644
edit
dl
rm
quote.php
11432
0644
edit
dl
rm
recall.php
935
0644
edit
dl
rm
replysms.php
964
0644
edit
dl
rm
search.php
853
0644
edit
dl
rm
sendtofamily.php
1153
0644
edit
dl
rm
sendToSlack.php
0
0644
edit
dl
rm
smscheck.php
1042
0644
edit
dl
rm
smsconfirm.php
10090
0644
edit
dl
rm
smsInvoice.php
5994
0644
edit
dl
rm
smslog.php
805
0644
edit
dl
rm
smsmel.php
685
0644
edit
dl
rm
smssend.php
4252
0644
edit
dl
rm
smsSendInv.php
1098
0644
edit
dl
rm
spatula_addFC.php
5076
0644
edit
dl
rm
spat_test.php
1308
0644
edit
dl
rm
test.php
670
0644
edit
dl
rm
test2.php
0
0644
edit
dl
rm
test123.php
19
0644
edit
dl
rm
tollster (1).zip
9867447
0644
edit
dl
rm
typeConfig.php
6414
0644
edit
dl
rm
typeGet.php
5972
0644
edit
dl
rm
update.php
24185
0644
edit
dl
rm
urlShortener.php
3031
0644
edit
dl
rm
vromo.php
273
0644
edit
dl
rm
webhook.php
2330
0644
edit
dl
rm
x.php
1156
0644
edit
dl
rm
Edit:
/home/desid573/public_html/class.smtp.php
(24586B)
<?php /*~ class.smtp.php .---------------------------------------------------------------------------. | Software: PHPMailer - PHP email class | | Version: 5.2 | | Site: https://code.google.com/a/apache-extras.org/p/phpmailer/ | | ------------------------------------------------------------------------- | | Admin: Jim Jagielski (project admininistrator) | | Authors: Andy Prevost (codeworxtech) codeworxtech@users.sourceforge.net | | : Marcus Bointon (coolbru) coolbru@users.sourceforge.net | | : Jim Jagielski (jimjag) jimjag@gmail.com | | Founder: Brent R. Matzelle (original founder) | | Copyright (c) 2010-2011, Jim Jagielski. All Rights Reserved. | | Copyright (c) 2004-2009, Andy Prevost. All Rights Reserved. | | Copyright (c) 2001-2003, Brent R. Matzelle | | ------------------------------------------------------------------------- | | License: Distributed under the Lesser General Public License (LGPL) | | http://www.gnu.org/copyleft/lesser.html | | This program is distributed in the hope that it will be useful - WITHOUT | | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | | FITNESS FOR A PARTICULAR PURPOSE. | '---------------------------------------------------------------------------' */ /** * PHPMailer - PHP SMTP email transport class * NOTE: Designed for use with PHP version 5 and up * @package PHPMailer * @author Andy Prevost * @author Marcus Bointon * @copyright 2004 - 2008 Andy Prevost * @author Jim Jagielski * @copyright 2010 - 2011 Jim Jagielski * @license http://www.gnu.org/copyleft/lesser.html Distributed under the Lesser General Public License (LGPL) * @version $Id: class.smtp.php 450 2010-06-23 16:46:33Z coolbru $ */ /** * SMTP is rfc 821 compliant and implements all the rfc 821 SMTP * commands except TURN which will always return a not implemented * error. SMTP also provides some utility methods for sending mail * to an SMTP server. * original author: Chris Ryan */ class SMTP { /** * SMTP server port * @var int */ public $SMTP_PORT = 25; /** * SMTP reply line ending * @var string */ public $CRLF = "\r\n"; /** * Sets whether debugging is turned on * @var bool */ public $do_debug; // the level of debug to perform /** * Sets VERP use on/off (default is off) * @var bool */ public $do_verp = false; /** * Sets the SMTP PHPMailer Version number * @var string */ public $Version = '5.2'; ///////////////////////////////////////////////// // PROPERTIES, PRIVATE AND PROTECTED ///////////////////////////////////////////////// private $smtp_conn; // the socket to the server private $error; // error if any on the last call private $helo_rply; // the reply the server sent to us for HELO /** * Initialize the class so that the data is in a known state. * @access public * @return void */ public function __construct() { $this->smtp_conn = 0; $this->error = null; $this->helo_rply = null; $this->do_debug = 0; } ///////////////////////////////////////////////// // CONNECTION FUNCTIONS ///////////////////////////////////////////////// /** * Connect to the server specified on the port specified. * If the port is not specified use the default SMTP_PORT. * If tval is specified then a connection will try and be * established with the server for that number of seconds. * If tval is not specified the default is 30 seconds to * try on the connection. * * SMTP CODE SUCCESS: 220 * SMTP CODE FAILURE: 421 * @access public * @return bool */ public function Connect($host, $port = 0, $tval = 30) { // set the error val to null so there is no confusion $this->error = null; // make sure we are __not__ connected if($this->connected()) { // already connected, generate error $this->error = array("error" => "Already connected to a server"); return false; } if(empty($port)) { $port = $this->SMTP_PORT; } // connect to the smtp server $this->smtp_conn = @fsockopen($host, // the host of the server $port, // the port to use $errno, // error number if any $errstr, // error message if any $tval); // give up after ? secs // verify we connected properly if(empty($this->smtp_conn)) { $this->error = array("error" => "Failed to connect to server", "errno" => $errno, "errstr" => $errstr); if($this->do_debug >= 1) { echo "SMTP -> ERROR: " . $this->error["error"] . ": $errstr ($errno)" . $this->CRLF . '<br />'; } return false; } // SMTP server can take longer to respond, give longer timeout for first read // Windows does not have support for this timeout function if(substr(PHP_OS, 0, 3) != "WIN") socket_set_timeout($this->smtp_conn, $tval, 0); // get any announcement $announce = $this->get_lines(); if($this->do_debug >= 2) { echo "SMTP -> FROM SERVER:" . $announce . $this->CRLF . '<br />'; } return true; } /** * Initiate a TLS communication with the server. * * SMTP CODE 220 Ready to start TLS * SMTP CODE 501 Syntax error (no parameters allowed) * SMTP CODE 454 TLS not available due to temporary reason * @access public * @return bool success */ public function StartTLS() { $this->error = null; # to avoid confusion if(!$this->connected()) { $this->error = array("error" => "Called StartTLS() without being connected"); return false; } fputs($this->smtp_conn,"STARTTLS" . $this->CRLF); $rply = $this->get_lines(); $code = substr($rply,0,3); if($this->do_debug >= 2) { echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '<br />'; } if($code != 220) { $this->error = array("error" => "STARTTLS not accepted from server", "smtp_code" => $code, "smtp_msg" => substr($rply,4)); if($this->do_debug >= 1) { echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; } return false; } // Begin encrypted connection if(!stream_socket_enable_crypto($this->smtp_conn, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) { return false; } return true; } /** * Performs SMTP authentication. Must be run after running the * Hello() method. Returns true if successfully authenticated. * @access public * @return bool */ public function Authenticate($username, $password) { // Start authentication fputs($this->smtp_conn,"AUTH LOGIN" . $this->CRLF); $rply = $this->get_lines(); $code = substr($rply,0,3); if($code != 334) { $this->error = array("error" => "AUTH not accepted from server", "smtp_code" => $code, "smtp_msg" => substr($rply,4)); if($this->do_debug >= 1) { echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; } return false; } // Send encoded username fputs($this->smtp_conn, base64_encode($username) . $this->CRLF); $rply = $this->get_lines(); $code = substr($rply,0,3); if($code != 334) { $this->error = array("error" => "Username not accepted from server", "smtp_code" => $code, "smtp_msg" => substr($rply,4)); if($this->do_debug >= 1) { echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; } return false; } // Send encoded password fputs($this->smtp_conn, base64_encode($password) . $this->CRLF); $rply = $this->get_lines(); $code = substr($rply,0,3); if($code != 235) { $this->error = array("error" => "Password not accepted from server", "smtp_code" => $code, "smtp_msg" => substr($rply,4)); if($this->do_debug >= 1) { echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; } return false; } return true; } /** * Returns true if connected to a server otherwise false * @access public * @return bool */ public function Connected() { if(!empty($this->smtp_conn)) { $sock_status = socket_get_status($this->smtp_conn); if($sock_status["eof"]) { // the socket is valid but we are not connected if($this->do_debug >= 1) { echo "SMTP -> NOTICE:" . $this->CRLF . "EOF caught while checking if connected"; } $this->Close(); return false; } return true; // everything looks good } return false; } /** * Closes the socket and cleans up the state of the class. * It is not considered good to use this function without * first trying to use QUIT. * @access public * @return void */ public function Close() { $this->error = null; // so there is no confusion $this->helo_rply = null; if(!empty($this->smtp_conn)) { // close the connection and cleanup fclose($this->smtp_conn); $this->smtp_conn = 0; } } ///////////////////////////////////////////////// // SMTP COMMANDS ///////////////////////////////////////////////// /** * Issues a data command and sends the msg_data to the server * finializing the mail transaction. $msg_data is the message * that is to be send with the headers. Each header needs to be * on a single line followed by a <CRLF> with the message headers * and the message body being seperated by and additional <CRLF>. * * Implements rfc 821: DATA <CRLF> * * SMTP CODE INTERMEDIATE: 354 * [data] * <CRLF>.<CRLF> * SMTP CODE SUCCESS: 250 * SMTP CODE FAILURE: 552,554,451,452 * SMTP CODE FAILURE: 451,554 * SMTP CODE ERROR : 500,501,503,421 * @access public * @return bool */ public function Data($msg_data) { $this->error = null; // so no confusion is caused if(!$this->connected()) { $this->error = array( "error" => "Called Data() without being connected"); return false; } fputs($this->smtp_conn,"DATA" . $this->CRLF); $rply = $this->get_lines(); $code = substr($rply,0,3); if($this->do_debug >= 2) { echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '<br />'; } if($code != 354) { $this->error = array("error" => "DATA command not accepted from server", "smtp_code" => $code, "smtp_msg" => substr($rply,4)); if($this->do_debug >= 1) { echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; } return false; } /* the server is ready to accept data! * according to rfc 821 we should not send more than 1000 * including the CRLF * characters on a single line so we will break the data up * into lines by \r and/or \n then if needed we will break * each of those into smaller lines to fit within the limit. * in addition we will be looking for lines that start with * a period '.' and append and additional period '.' to that * line. NOTE: this does not count towards limit. */ // normalize the line breaks so we know the explode works $msg_data = str_replace("\r\n","\n",$msg_data); $msg_data = str_replace("\r","\n",$msg_data); $lines = explode("\n",$msg_data); /* we need to find a good way to determine is headers are * in the msg_data or if it is a straight msg body * currently I am assuming rfc 822 definitions of msg headers * and if the first field of the first line (':' sperated) * does not contain a space then it _should_ be a header * and we can process all lines before a blank "" line as * headers. */ $field = substr($lines[0],0,strpos($lines[0],":")); $in_headers = false; if(!empty($field) && !strstr($field," ")) { $in_headers = true; } $max_line_length = 998; // used below; set here for ease in change while(list(,$line) = @each($lines)) { $lines_out = null; if($line == "" && $in_headers) { $in_headers = false; } // ok we need to break this line up into several smaller lines while(strlen($line) > $max_line_length) { $pos = strrpos(substr($line,0,$max_line_length)," "); // Patch to fix DOS attack if(!$pos) { $pos = $max_line_length - 1; $lines_out[] = substr($line,0,$pos); $line = substr($line,$pos); } else { $lines_out[] = substr($line,0,$pos); $line = substr($line,$pos + 1); } /* if processing headers add a LWSP-char to the front of new line * rfc 822 on long msg headers */ if($in_headers) { $line = "\t" . $line; } } $lines_out[] = $line; // send the lines to the server while(list(,$line_out) = @each($lines_out)) { if(strlen($line_out) > 0) { if(substr($line_out, 0, 1) == ".") { $line_out = "." . $line_out; } } fputs($this->smtp_conn,$line_out . $this->CRLF); } } // message data has been sent fputs($this->smtp_conn, $this->CRLF . "." . $this->CRLF); $rply = $this->get_lines(); $code = substr($rply,0,3); if($this->do_debug >= 2) { echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '<br />'; } if($code != 250) { $this->error = array("error" => "DATA not accepted from server", "smtp_code" => $code, "smtp_msg" => substr($rply,4)); if($this->do_debug >= 1) { echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; } return false; } return true; } /** * Sends the HELO command to the smtp server. * This makes sure that we and the server are in * the same known state. * * Implements from rfc 821: HELO <SP> <domain> <CRLF> * * SMTP CODE SUCCESS: 250 * SMTP CODE ERROR : 500, 501, 504, 421 * @access public * @return bool */ public function Hello($host = '') { $this->error = null; // so no confusion is caused if(!$this->connected()) { $this->error = array( "error" => "Called Hello() without being connected"); return false; } // if hostname for HELO was not specified send default if(empty($host)) { // determine appropriate default to send to server $host = "localhost"; } // Send extended hello first (RFC 2821) if(!$this->SendHello("EHLO", $host)) { if(!$this->SendHello("HELO", $host)) { return false; } } return true; } /** * Sends a HELO/EHLO command. * @access private * @return bool */ private function SendHello($hello, $host) { fputs($this->smtp_conn, $hello . " " . $host . $this->CRLF); $rply = $this->get_lines(); $code = substr($rply,0,3); if($this->do_debug >= 2) { echo "SMTP -> FROM SERVER: " . $rply . $this->CRLF . '<br />'; } if($code != 250) { $this->error = array("error" => $hello . " not accepted from server", "smtp_code" => $code, "smtp_msg" => substr($rply,4)); if($this->do_debug >= 1) { echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; } return false; } $this->helo_rply = $rply; return true; } /** * Starts a mail transaction from the email address specified in * $from. Returns true if successful or false otherwise. If True * the mail transaction is started and then one or more Recipient * commands may be called followed by a Data command. * * Implements rfc 821: MAIL <SP> FROM:<reverse-path> <CRLF> * * SMTP CODE SUCCESS: 250 * SMTP CODE SUCCESS: 552,451,452 * SMTP CODE SUCCESS: 500,501,421 * @access public * @return bool */ public function Mail($from) { $this->error = null; // so no confusion is caused if(!$this->connected()) { $this->error = array( "error" => "Called Mail() without being connected"); return false; } $useVerp = ($this->do_verp ? "XVERP" : ""); fputs($this->smtp_conn,"MAIL FROM:<" . $from . ">" . $useVerp . $this->CRLF); $rply = $this->get_lines(); $code = substr($rply,0,3); if($this->do_debug >= 2) { echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '<br />'; } if($code != 250) { $this->error = array("error" => "MAIL not accepted from server", "smtp_code" => $code, "smtp_msg" => substr($rply,4)); if($this->do_debug >= 1) { echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; } return false; } return true; } /** * Sends the quit command to the server and then closes the socket * if there is no error or the $close_on_error argument is true. * * Implements from rfc 821: QUIT <CRLF> * * SMTP CODE SUCCESS: 221 * SMTP CODE ERROR : 500 * @access public * @return bool */ public function Quit($close_on_error = true) { $this->error = null; // so there is no confusion if(!$this->connected()) { $this->error = array( "error" => "Called Quit() without being connected"); return false; } // send the quit command to the server fputs($this->smtp_conn,"quit" . $this->CRLF); // get any good-bye messages $byemsg = $this->get_lines(); if($this->do_debug >= 2) { echo "SMTP -> FROM SERVER:" . $byemsg . $this->CRLF . '<br />'; } $rval = true; $e = null; $code = substr($byemsg,0,3); if($code != 221) { // use e as a tmp var cause Close will overwrite $this->error $e = array("error" => "SMTP server rejected quit command", "smtp_code" => $code, "smtp_rply" => substr($byemsg,4)); $rval = false; if($this->do_debug >= 1) { echo "SMTP -> ERROR: " . $e["error"] . ": " . $byemsg . $this->CRLF . '<br />'; } } if(empty($e) || $close_on_error) { $this->Close(); } return $rval; } /** * Sends the command RCPT to the SMTP server with the TO: argument of $to. * Returns true if the recipient was accepted false if it was rejected. * * Implements from rfc 821: RCPT <SP> TO:<forward-path> <CRLF> * * SMTP CODE SUCCESS: 250,251 * SMTP CODE FAILURE: 550,551,552,553,450,451,452 * SMTP CODE ERROR : 500,501,503,421 * @access public * @return bool */ public function Recipient($to) { $this->error = null; // so no confusion is caused if(!$this->connected()) { $this->error = array( "error" => "Called Recipient() without being connected"); return false; } fputs($this->smtp_conn,"RCPT TO:<" . $to . ">" . $this->CRLF); $rply = $this->get_lines(); $code = substr($rply,0,3); if($this->do_debug >= 2) { echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '<br />'; } if($code != 250 && $code != 251) { $this->error = array("error" => "RCPT not accepted from server", "smtp_code" => $code, "smtp_msg" => substr($rply,4)); if($this->do_debug >= 1) { echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; } return false; } return true; } /** * Sends the RSET command to abort and transaction that is * currently in progress. Returns true if successful false * otherwise. * * Implements rfc 821: RSET <CRLF> * * SMTP CODE SUCCESS: 250 * SMTP CODE ERROR : 500,501,504,421 * @access public * @return bool */ public function Reset() { $this->error = null; // so no confusion is caused if(!$this->connected()) { $this->error = array( "error" => "Called Reset() without being connected"); return false; } fputs($this->smtp_conn,"RSET" . $this->CRLF); $rply = $this->get_lines(); $code = substr($rply,0,3); if($this->do_debug >= 2) { echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '<br />'; } if($code != 250) { $this->error = array("error" => "RSET failed", "smtp_code" => $code, "smtp_msg" => substr($rply,4)); if($this->do_debug >= 1) { echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; } return false; } return true; } /** * Starts a mail transaction from the email address specified in * $from. Returns true if successful or false otherwise. If True * the mail transaction is started and then one or more Recipient * commands may be called followed by a Data command. This command * will send the message to the users terminal if they are logged * in and send them an email. * * Implements rfc 821: SAML <SP> FROM:<reverse-path> <CRLF> * * SMTP CODE SUCCESS: 250 * SMTP CODE SUCCESS: 552,451,452 * SMTP CODE SUCCESS: 500,501,502,421 * @access public * @return bool */ public function SendAndMail($from) { $this->error = null; // so no confusion is caused if(!$this->connected()) { $this->error = array( "error" => "Called SendAndMail() without being connected"); return false; } fputs($this->smtp_conn,"SAML FROM:" . $from . $this->CRLF); $rply = $this->get_lines(); $code = substr($rply,0,3); if($this->do_debug >= 2) { echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '<br />'; } if($code != 250) { $this->error = array("error" => "SAML not accepted from server", "smtp_code" => $code, "smtp_msg" => substr($rply,4)); if($this->do_debug >= 1) { echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; } return false; } return true; } /** * This is an optional command for SMTP that this class does not * support. This method is here to make the RFC821 Definition * complete for this class and __may__ be implimented in the future * * Implements from rfc 821: TURN <CRLF> * * SMTP CODE SUCCESS: 250 * SMTP CODE FAILURE: 502 * SMTP CODE ERROR : 500, 503 * @access public * @return bool */ public function Turn() { $this->error = array("error" => "This method, TURN, of the SMTP ". "is not implemented"); if($this->do_debug >= 1) { echo "SMTP -> NOTICE: " . $this->error["error"] . $this->CRLF . '<br />'; } return false; } /** * Get the current error * @access public * @return array */ public function getError() { return $this->error; } ///////////////////////////////////////////////// // INTERNAL FUNCTIONS ///////////////////////////////////////////////// /** * Read in as many lines as possible * either before eof or socket timeout occurs on the operation. * With SMTP we can tell if we have more lines to read if the * 4th character is '-' symbol. If it is a space then we don't * need to read anything else. * @access private * @return string */ private function get_lines() { $data = ""; while($str = @fgets($this->smtp_conn,515)) { if($this->do_debug >= 4) { echo "SMTP -> get_lines(): \$data was \"$data\"" . $this->CRLF . '<br />'; echo "SMTP -> get_lines(): \$str is \"$str\"" . $this->CRLF . '<br />'; } $data .= $str; if($this->do_debug >= 4) { echo "SMTP -> get_lines(): \$data is \"$data\"" . $this->CRLF . '<br />'; } // if 4th character is a space, we are done reading, break the loop if(substr($str,3,1) == " ") { break; } } return $data; } } ?>
Save
cmd:
run