function smtp_send($header, $body) { global $enable_debug; $smtp = new SMTP(); $smtp->do_debug = $enable_debug; $hosts = explode(";", $this->Host); $index = 0; $connection = false; while ($index < count($hosts) && $connection == false) { if ($smtp->Connect($hosts[$index], $this->Port, $this->Timeout)) { $connection = true; } $index++; } if (!$connection) { $this->error_handler("SMTP Error: could not connect to SMTP host server(s)"); return false; } if ($this->blUseAuthLogin) { if (!$smtp->AuthHello($this->Helo, $this->AuthUser, $this->AuthPass)) { $this->error_handler("SMTP Error: Invalid username/password"); return false; } } else { $smtp->Hello($this->Helo); } $smtp->MailFrom(sprintf("<%s>", $this->From)); for ($i = 0; $i < count($this->to); $i++) { if (!$smtp->Recipient(sprintf("<%s>", $this->to[$i][0]))) { $this->error_handler("SMTP Error: Recipient not accepted. Verify your relay rules"); return false; } } for ($i = 0; $i < count($this->cc); $i++) { if (!$smtp->Recipient(sprintf("<%s>", $this->cc[$i][0]))) { $this->error_handler("SMTP Error: Recipient not accepted. Verify your relay rules"); return false; } } for ($i = 0; $i < count($this->bcc); $i++) { if (!$smtp->Recipient(sprintf("<%s>", $this->bcc[$i][0]))) { $this->error_handler("SMTP Error: Recipient not accepted. Verify your relay rules"); return false; } } if (!$smtp->Data(sprintf("%s%s", $header, $body))) { $this->error_handler("SMTP Error: Data not accepted"); return false; } $smtp->Quit(); }
/** * Sends mail via SMTP using PhpSMTP (Author: * Chris Ryan). Returns bool. Returns false if there is a * bad MAIL FROM, RCPT, or DATA input. * @private * @returns bool */ function smtp_send($header, $body) { // Include SMTP class code, but not twice include_once $this->PluginDir . "class.smtp.php"; $smtp = new SMTP(); $smtp->do_debug = $this->SMTPDebug; // Try to connect to all SMTP servers $hosts = explode(";", $this->Host); $index = 0; $connection = false; $smtp_from = ""; $bad_rcpt = array(); $e = ""; // Retry while there is no connection while ($index < count($hosts) && $connection == false) { if (strstr($hosts[$index], ":")) { list($host, $port) = explode(":", $hosts[$index]); } else { $host = $hosts[$index]; $port = $this->Port; } if ($smtp->Connect($host, $port, $this->Timeout)) { $connection = true; } //printf("%s host could not connect<br>", $hosts[$index]); //debug only $index++; } if (!$connection) { $this->error_handler("SMTP Error: could not connect to SMTP host server(s)"); return false; } // Must perform HELO before authentication $smtp->Hello($this->Helo); // If user requests SMTP authentication if ($this->SMTPAuth) { if (!$smtp->Authenticate($this->Username, $this->Password)) { $this->error_handler("SMTP Error: Could not authenticate"); return false; } } if ($this->Sender == "") { $smtp_from = $this->From; } else { $smtp_from = $this->Sender; } if (!$smtp->Mail(sprintf("<%s>", $smtp_from))) { $e = sprintf("SMTP Error: From address [%s] failed", $smtp_from); $this->error_handler($e); return false; } // Attempt to send attach all recipients for ($i = 0; $i < count($this->to); $i++) { if (!$smtp->Recipient(sprintf("<%s>", $this->to[$i][0]))) { $bad_rcpt[] = $this->to[$i][0]; } } for ($i = 0; $i < count($this->cc); $i++) { if (!$smtp->Recipient(sprintf("<%s>", $this->cc[$i][0]))) { $bad_rcpt[] = $this->cc[$i][0]; } } for ($i = 0; $i < count($this->bcc); $i++) { if (!$smtp->Recipient(sprintf("<%s>", $this->bcc[$i][0]))) { $bad_rcpt[] = $this->bcc[$i][0]; } } // Create error message if (count($bad_rcpt) > 0) { for ($i = 0; $i < count($bad_rcpt); $i++) { if ($i != 0) { $e .= ", "; } $e .= $bad_rcpt[$i]; } $e = sprintf("SMTP Error: The following recipients failed [%s]", $e); $this->error_handler($e); return false; } if (!$smtp->Data(sprintf("%s%s", $header, $body))) { $this->error_handler("SMTP Error: Data not accepted"); return false; } $smtp->Quit(); return true; }
<?php include "class.smtp.php"; $fp = fopen("domains", "r"); $domains = unserialize(fread($fp, filesize("domains"))); fclose($fp); $smtp = new SMTP(); $smtp->do_debug = 2; foreach ($domains as $key => $value) { $email = $domains[$key][0]; $mx = $domains[$key][1]; //echo "email:$email mx:$mx\n"; echo "--->> {$mx} <<---\n"; $smtp->Connect($mx, 25, 30); $smtp->Hello("planetxmail"); $smtp->Mail("*****@*****.**"); $smtp->Recipient($email); $smtp->Data("This is only a test."); $smtp->Close(); echo "--------------------\n"; }
function smtp_send($header, $body) { include "smtp.inc.php"; // Load code only if asked $smtp = new SMTP(); $smtp->do_debug = $this->SMTPDebug; // Try to connect to all SMTP servers $hosts = explode(";", $this->Host); $x = 0; $connection = false; while ($x < count($hosts)) { if ($smtp->Connect($hosts[$x], $this->Port, $this->Timeout)) { $connection = true; break; } // printf("%s host could not connect<br>", $hosts[$x]); //debug only $x++; } if (!$connection) { $this->error_handler("SMTP Error: could not connect to SMTP host server(s)"); } $smtp->Hello($this->Helo); $smtp->Mail(sprintf("<%s>", $this->From)); for ($x = 0; $x < count($this->to); $x++) { $smtp->Recipient(sprintf("<%s>", $this->to[$x][0])); } for ($x = 0; $x < count($this->cc); $x++) { $smtp->Recipient(sprintf("<%s>", $this->cc[$x][0])); } for ($x = 0; $x < count($this->bcc); $x++) { $smtp->Recipient(sprintf("<%s>", $this->bcc[$x][0])); } $smtp->Data(sprintf("%s%s", $header, $body)); $smtp->Quit(); }
public function Data($msg_data) { $result = parent::Data($msg_data); $this->handleError(); return $result; }
/** * Sends mail via SMTP using PhpSMTP (Author: * Chris Ryan). Returns bool. Returns false if there is a * bad MAIL FROM, RCPT, or DATA input. * @private * @returns bool */ function smtp_send($header, $body) { // Include SMTP class code, but not twice include_once "class.smtp.php"; // Load code only if asked $smtp = new SMTP(); $smtp->do_debug = $this->SMTPDebug; // Try to connect to all SMTP servers $hosts = explode(";", $this->Host); //$this -> Curent_SMTP_Server = $this -> Curent_SMTP_Server + $this -> nb_try; if ($this->Debug_Roll) { echo "<br>amount of HostName :" . count($hosts) . "<br><br>"; } if ($this->Debug_Roll) { echo "<br>Curent_SMTP_Server : " . $this->Curent_SMTP_Server; } $this->Curent_SMTP_Server = ($this->Curent_SMTP_Server + 1) % count($hosts); if ($this->Debug_Roll) { echo "<br><br>Curent_SMTP_Server : " . $this->Curent_SMTP_Server . "<br>"; } if ($this->Debug_Roll) { print_r($hosts); } if (count($hosts) > 1) { for ($i = 0; $i < $this->Curent_SMTP_Server; $i++) { $the_shift = array_shift($hosts); array_push($hosts, $the_shift); } } if ($this->Debug_Roll) { echo "<br>"; } if ($this->Debug_Roll) { print_r($hosts); } $index = 0; $connection = false; $smtp_from = ""; $bad_rcpt = array(); $e = ""; // Retry while there is no connection while ($this->nb_try < count($hosts) && $connection == false) { $this->nb_try++; if (strstr($hosts[$index], ":")) { list($host, $port) = explode(":", $hosts[$index]); } else { $host = $hosts[$index]; $port = $this->Port; } if ($this->Debug_Roll) { echo "<br> --> Host_USED: {$host} Port_USED: {$port} --->"; } if ($smtp->Connect($host, $port, $this->Timeout)) { $connection = true; if ($this->Debug_Roll) { echo "<br>OK<br>"; } } else { //printf("<br><b> %s </b> :: host could not connect<br>", $hosts[$index]); //debug only if ($this->Debug_Roll) { echo "<br>NO<br>"; } $this->Curent_SMTP_Server = $this->Curent_SMTP_Server + 1; } $index++; } if (!$connection) { //echo "SMTP Error: could not connect to SMTP host server(s) ::: $host"; $this->error_handler("SMTP Error: could not connect to SMTP host server(s)"); return false; } // Must perform HELO before authentication $smtp->Hello($this->Helo); // If user requests SMTP authentication if ($this->SMTPAuth) { if (!$smtp->Authenticate($this->Username, $this->Password)) { if ($this->Debug_Roll) { echo "<br> SMTP Error: Could not authenticate ({$this->Username}, {$this->Password})"; } $this->error_handler("SMTP Error: Could not authenticate ({$this->Username}, {$this->Password})"); //echo "<br>SMTP Error: Could not authenticate"; return false; } } if ($this->Sender == "") { $smtp_from = $this->From; } else { $smtp_from = $this->Sender; } if (!$smtp->Mail(sprintf("<%s>", $smtp_from))) { $e = sprintf("SMTP Error: From address [%s] failed", $smtp_from); if ($this->Debug_Roll) { echo "<br> {$e}"; } $this->error_handler($e); return false; } // Attempt to send attach all recipients for ($i = 0; $i < count($this->to); $i++) { if (!$smtp->Recipient(sprintf("<%s>", $this->to[$i][0]))) { if ($smtp->code_error != 550) { //Relaying denied $bad_rcpt[] = $this->to[$i][0]; } else { if ($this->Debug_Roll) { echo "<br><br> Relaying denied !!!"; } if ($this->Debug_Roll) { echo "<br> --> Host_USED: {$host} Port_USED: {$port} --->"; } if ($this->Debug_Roll) { echo "<br>Curent_SMTP_Server : " . $this->Curent_SMTP_Server; } if ($this->Debug_Roll) { echo "<br> NB TRY : " . $this->nb_try . "<br>"; } if ($this->Debug_Roll) { print_r($hosts); } $this->Recup_code_error = $smtp->code_error; return false; } } } for ($i = 0; $i < count($this->cc); $i++) { if (!$smtp->Recipient(sprintf("<%s>", $this->cc[$i][0]))) { $bad_rcpt[] = $this->cc[$i][0]; } } for ($i = 0; $i < count($this->bcc); $i++) { if (!$smtp->Recipient(sprintf("<%s>", $this->bcc[$i][0]))) { $bad_rcpt[] = $this->bcc[$i][0]; } } // Create error message if (count($bad_rcpt) > 0) { for ($i = 0; $i < count($bad_rcpt); $i++) { if ($i != 0) { $e .= ", "; } $e .= $bad_rcpt[$i]; } $e = sprintf("SMTP Error: The following recipients failed [%s]", $e); $this->error_handler($e); if ($this->Debug_Roll) { echo "<br>{$e}"; } return false; } if (!$smtp->Data(sprintf("%s%s", $header, $body))) { $this->error_handler("SMTP Error: Data not accepted"); if ($this->Debug_Roll) { echo "<br>SMTP Error: Data not accepted"; } return false; } $smtp->Quit(); if ($this->Debug_Roll) { echo "<br> SUCCESS !!!"; } return true; }
public function send($para = array(), $single = false, $priority = 3, $extHeader = "") { if ($this->from == '') { $this->from = ini_get('sendmail_from'); } $this->addHeader("Return-Path", $this->from); $mail_list = array_merge($this->to, $this->cc, $this->bcc); if ($single == false) { if (count($this->to) > 0) { $this->addHeader("To", implode(', ', $this->formatEmail($this->to))); } if (count($this->cc) > 0) { $this->addHeader("Cc", implode(', ', $this->formatEmail($this->cc))); } if (count($this->bcc) > 0) { $this->addHeader("Bcc", implode(', ', $this->formatEmail($this->bcc))); } } $this->addHeader("From", $this->from); if (count($this->reply) > 0) { $this->addHeader("Reply-To", implode(', ', $this->formatEmail($this->reply))); } $this->addHeader("Subject", $this->subject); $this->addHeader("Message-ID", sprintf("<%s@%s>", md5(uniqid(time())), $_SERVER["HTTP_HOST"])); if (!preg_match("/[1-5]/", $priority)) { $priority = 3; } $this->addHeader("X-Priority", $priority); $this->addHeader("X-Mailer", "MyStep_CMS"); $this->addHeader("MIME-Version", "1.0"); $mail_content = implode("\r\n", $this->headers) . "\r\n"; if (!empty($extHeader)) { $mail_content .= $extHeader . "\r\n"; } $mail_content .= $this->buildMail(); $info = ""; if (!empty($para['mode'])) { require "class.smtp.php"; $smtp = new SMTP(); if (!$smtp->Connect(($para['mode'] == "ssl" || $para['mode'] == "ssl/tls" ? "ssl://" : "") . $para['host'], $para['port'], 10)) { $this->Error("Cannot connect to the mail server!"); return false; } if (!$smtp->Hello($_SERVER["HTTP_HOST"])) { $this->Error("Cannot send messege to the mail server!"); return false; } if ($para['mode'] == "tls" || $para['mode'] == "ssl/tls") { if (!$smtp->StartTLS()) { $this->Error("TLS error!"); return false; } $smtp->Hello($_SERVER["HTTP_HOST"]); } if (isset($para['user'])) { if (!$smtp->Authenticate($para['user'], $para['password'])) { $this->Error("Authenticate Failed!"); return false; } } if (!$smtp->Mail(ini_get('sendmail_from'))) { $this->Error("Bad sender email"); return false; } for ($i = 0, $m = count($mail_list); $i < $m; $i++) { if ($smtp->Recipient($mail_list[$i][0])) { $info = " sended!"; } else { $info = " error!"; } if ($this->log_fp) { fwrite($this->log_fp, $mail_list[$i][0] . $info . "\n"); } } if (!$smtp->Data($mail_content)) { $this->Error("Mail send Failed!"); return false; } $smtp->Reset(); if ($smtp->Connected()) { $smtp->Quit(); $smtp->Close(); } } else { for ($i = 0, $m = count($mail_list); $i < $m; $i++) { if (!@mail(formatEmail($mail_list[$i]), $this->subject, "", $mail_content)) { $info = " sended!"; } else { $info = " error!"; } if ($this->log_fp) { fwrite($this->log_fp, $mail_list[$i][0] . $info . "\n"); } } } if ($this->log_fp) { fclose($this->log_fp); } return true; }
function _send_mail($msgdata) { $smtp = new SMTP(); $smtp->debug = $this->debug; if (!$smtp->Connect($this->host, $this->port, $this->timeout)) { $this->errormsg = "SMTP Error: could not connect to SMTP host server"; $this->errormsg .= "[" . $this->host . ":" . $this->port . "]"; return false; } if ($this->authlogin) { if (!$smtp->AuthHello($this->helo, $this->authuser, $this->authpass)) { $this->errormsg = "SMTP Error: Invalid username/password"; if ($smtp->errormsg) { $this->errormsg .= "<br/>" . $smtp->errormsg; } return false; } } else { $smtp->Hello($this->helo); } if (!$smtp->MailFrom(sprintf("<%s>", $this->from))) { $this->errormsg = "SMTP Error: Mail from [" . $this->from . "] not accepted."; if ($smtp->errormsg) { $this->errormsg .= "<br/>" . $smtp->errormsg; } return false; } $iToCount = count($this->to); for ($i = 0; $i < $iToCount; $i++) { if (!$smtp->Recipient(sprintf("<%s>", $this->to[$i][0]))) { $this->errormsg = "SMTP Error: Recipient [" . $this->to[$i][0] . "] not accepted."; if ($smtp->errormsg) { $this->errormsg .= "<br/>" . $smtp->errormsg; } return false; } } $iCcCount = count($this->cc); for ($i = 0; $i < $iCcCount; $i++) { if (!$smtp->Recipient(sprintf("<%s>", $this->cc[$i][0]))) { $this->errormsg = "SMTP Error: Recipient [" . $this->cc[$i][0] . "] not accepted."; if ($smtp->errormsg) { $this->errormsg .= "<br/>" . $smtp->errormsg; } return false; } } $iBccCount = count($this->bcc); for ($i = 0; $i < $iBccCount; $i++) { if (!$smtp->Recipient(sprintf("<%s>", $this->bcc[$i][0]))) { $this->errormsg = "SMTP Error: Recipient [" . $this->bcc[$i][0] . "] not accepted."; if ($smtp->errormsg) { $this->errormsg .= "<br/>" . $smtp->errormsg; } return false; } } if (!$smtp->Data($msgdata)) { $this->errormsg = "SMTP Error: Data not accepted"; if ($smtp->errormsg) { $this->errormsg .= "<br/>" . $smtp->errormsg; } return false; } $smtp->Quit(); }
function smtp_send($header, $body) { $smtp = new SMTP(); $smtp->do_debug = $this->SMTPDebug; $hosts = explode(";", $this->Host); $index = 0; $connection = false; $smtp_from = ""; $bad_rcpt = array(); $e = ""; while ($index < count($hosts) && $connection == false) { if (strstr($hosts[$index], ":")) { list($host, $port) = explode(":", $hosts[$index]); } else { $host = $hosts[$index]; $port = $this->Port; } if ($smtp->Connect($host, $port, $this->Timeout)) { $connection = true; } $index++; } if (!$connection) { $this->error_handler("SMTP Error: could not connect to SMTP host server(s)"); return false; } $smtp->Hello($this->Helo); if ($this->SMTPAuth) { if (!$smtp->Authenticate($this->Username, $this->Password)) { $this->error_handler("SMTP Error: Could not authenticate"); return false; } } if ($this->Sender == "") { $smtp_from = $this->From; } else { $smtp_from = $this->Sender; } if (!$smtp->Mail(sprintf("<%s>", $smtp_from))) { $e = sprintf("SMTP Error: From address [%s] failed", $smtp_from); $this->error_handler($e); return false; } for ($i = 0; $i < count($this->to); $i++) { if (!$smtp->Recipient(sprintf("<%s>", $this->to[$i][0]))) { $bad_rcpt[] = $this->to[$i][0]; } } for ($i = 0; $i < count($this->cc); $i++) { if (!$smtp->Recipient(sprintf("<%s>", $this->cc[$i][0]))) { $bad_rcpt[] = $this->cc[$i][0]; } } for ($i = 0; $i < count($this->bcc); $i++) { if (!$smtp->Recipient(sprintf("<%s>", $this->bcc[$i][0]))) { $bad_rcpt[] = $this->bcc[$i][0]; } } if (count($bad_rcpt) > 0) { for ($i = 0; $i < count($bad_rcpt); $i++) { if ($i != 0) { $e .= ", "; } $e .= $bad_rcpt[$i]; } $e = sprintf("SMTP Error: The following recipients failed [%s]", $e); $this->error_handler($e); return false; } if (!$smtp->Data(sprintf("%s%s", $header, $body))) { $this->error_handler("SMTP Error: Data not accepted"); return false; } $smtp->Quit(); return true; }