/** * This uses the SMTP class alone to check that a connection can be made to an SMTP server, * authenticate, then disconnect */ //SMTP needs accurate times, and the PHP time zone MUST be set //This should be done in your php.ini, but this is how to do it if you don't have access to that date_default_timezone_set('Etc/UTC'); require '../PHPMailerAutoload.php'; //Create a new SMTP instance $smtp = new SMTP(); //Enable connection-level debug output $smtp->do_debug = SMTP::DEBUG_CONNECTION; try { //Connect to an SMTP server if ($smtp->connect('lima.pegasushosting.nl', 995)) { //Say hello if ($smtp->hello('localhost')) { //Put your host name in here //Authenticate if ($smtp->authenticate('username', 'password')) { echo "Connected ok!"; } else { throw new Exception('Authentication failed: ' . $smtp->getLastReply()); } } else { throw new Exception('HELO failed: ' . $smtp->getLastReply()); } } else { throw new Exception('Connect failed'); }
/** * Initiate a connection to an SMTP server. * Returns false if the operation failed. * @param array $options An array of options compatible with stream_context_create() * @uses SMTP * @access public * @throws phpmailerException * @return boolean */ public function smtpConnect($options = array()) { if (is_null($this->smtp)) { $this->smtp = $this->getSMTPInstance(); } // Already connected? if ($this->smtp->connected()) { return true; } $this->smtp->setTimeout($this->Timeout); $this->smtp->setDebugLevel($this->SMTPDebug); $this->smtp->setDebugOutput($this->Debugoutput); $this->smtp->setVerp($this->do_verp); $hosts = explode(';', $this->Host); $lastexception = null; foreach ($hosts as $hostentry) { $hostinfo = array(); if (!preg_match('/^((ssl|tls):\\/\\/)*([a-zA-Z0-9\\.-]*):?([0-9]*)$/', trim($hostentry), $hostinfo)) { // Not a valid host entry continue; } // $hostinfo[2]: optional ssl or tls prefix // $hostinfo[3]: the hostname // $hostinfo[4]: optional port number // The host string prefix can temporarily override the current setting for SMTPSecure // If it's not specified, the default value is used $prefix = ''; $secure = $this->SMTPSecure; $tls = $this->SMTPSecure == 'tls'; if ('ssl' == $hostinfo[2] or '' == $hostinfo[2] and 'ssl' == $this->SMTPSecure) { $prefix = 'ssl://'; $tls = false; // Can't have SSL and TLS at the same time $secure = 'ssl'; } elseif ($hostinfo[2] == 'tls') { $tls = true; // tls doesn't use a prefix $secure = 'tls'; } //Do we need the OpenSSL extension? $sslext = defined('OPENSSL_ALGO_SHA1'); if ('tls' === $secure or 'ssl' === $secure) { //Check for an OpenSSL constant rather than using extension_loaded, which is sometimes disabled if (!$sslext) { throw new phpmailerException($this->lang('extension_missing') . 'openssl', self::STOP_CRITICAL); } } $host = $hostinfo[3]; $port = $this->Port; $tport = (int) $hostinfo[4]; if ($tport > 0 and $tport < 65536) { $port = $tport; } if ($this->smtp->connect($prefix . $host, $port, $this->Timeout, $options)) { try { if ($this->Helo) { $hello = $this->Helo; } else { $hello = $this->serverHostname(); } $this->smtp->hello($hello); //Automatically enable TLS encryption if: // * it's not disabled // * we have openssl extension // * we are not already using SSL // * the server offers STARTTLS if ($this->SMTPAutoTLS and $sslext and $secure != 'ssl' and $this->smtp->getServerExt('STARTTLS')) { $tls = true; } if ($tls) { if (!$this->smtp->startTLS()) { throw new phpmailerException($this->lang('connect_host')); } // We must resend HELO after tls negotiation $this->smtp->hello($hello); } if ($this->SMTPAuth) { if (!$this->smtp->authenticate($this->Username, $this->Password, $this->AuthType, $this->Realm, $this->Workstation)) { throw new phpmailerException($this->lang('authenticate')); } } return true; } catch (phpmailerException $exc) { $lastexception = $exc; $this->edebug($exc->getMessage()); // We must have connected, but then failed TLS or Auth, so close connection nicely $this->smtp->quit(); } } } // If we get here, all connection attempts have failed, so close connection hard $this->smtp->close(); // As we've caught all exceptions, just report whatever the last one was if ($this->exceptions and !is_null($lastexception)) { throw $lastexception; } return false; }
<?php //SMTP needs accurate times, and the PHP time zone MUST be set //This should be done in your php.ini, but this is how to do it if you don't have access to that date_default_timezone_set('Etc/UTC'); require '/home/capsdtempo/public_html/vendor/phpmailer/phpmailer/PHPMailerAutoload.php'; //Create a new SMTP instance $smtp = new SMTP(); //Enable connection-level debug output $smtp->do_debug = SMTP::DEBUG_CONNECTION; try { //Connect to an SMTP server if ($smtp->connect('r9-dallas.webserversystems.com', 25)) { //Say hello if ($smtp->hello('r9-dallas.webserversystems.com')) { //Put your host name in here //Authenticate if ($smtp->authenticate('*****@*****.**', 'Bmx1cpoe')) { echo "Connected ok!"; } else { throw new Exception('Authentication failed: ' . $smtp->getLastReply()); } } else { throw new Exception('HELLO failed: ' . $smtp->getLastReply()); } } else { throw new Exception('Connect failed'); } } catch (Exception $e) { echo 'SMTP error: ' . $e->getMessage(), "\n"; }
function ping_mail_server($host, $port, $user, $password, $timeout = 5, $secure = 'none') { global $config; include_once $config['base_path'] . '/lib/PHPMailer/PHPMailerAutoload.php'; //Create a new SMTP instance $smtp = new SMTP(); if ($secure != 'tls' && $secure != 'none') { $smtp->SMTPSecure = $secure; if (substr_count($host, ':') == 0) { $host = $secure . '://' . $host; } } //Enable connection-level debug output $smtp->do_debug = 0; //$smtp->do_debug = SMTP::DEBUG_LOWLEVEL; $results = true; try { //Connect to an SMTP server if ($smtp->connect($host, $port, $timeout)) { //Say hello if ($smtp->hello(gethostbyname(gethostname()))) { //Put your host name in here //Authenticate if ($smtp->authenticate($user, $password)) { $results = true; } else { throw new Exception('Authentication failed: ' . $smtp->getLastReply()); } } else { throw new Exception('HELO failed: ' . $smtp->getLastReply()); } } else { throw new Exception('Connect failed'); } } catch (Exception $e) { $results = 'SMTP error: ' . $e->getMessage(); } //Whatever happened, close the connection. $smtp->quit(true); return $results; }
/* Purpose: - send mail relay (using Gmail MTA) with authentication via SSL conection (TLS encryption) */ // manage errors error_reporting(E_ALL); // php errors define('DISPLAY_XPM4_ERRORS', true); // display XPM4 errors // path to 'SMTP.php' file from XPM4 package require_once '../SMTP.php'; $f = '*****@*****.**'; // from (Gmail mail address) $t = '*****@*****.**'; // to mail address $p = 'password'; // Gmail password // standard mail message RFC2822 $m = 'From: ' . $f . "\r\n" . 'To: ' . $t . "\r\n" . 'Subject: test' . "\r\n" . 'Content-Type: text/plain' . "\r\n\r\n" . 'Text message.'; // connect to MTA server (relay) 'smtp.gmail.com' via SSL (TLS encryption) with authentication using port '465' and timeout '10' secounds // make sure you have OpenSSL module (extension) enable on your php configuration $c = SMTP::connect('smtp.gmail.com', 465, $f, $p, 'tls', 10) or die(print_r($_RESULT)); // send mail relay $s = SMTP::send($c, array($t), $m, $f); // print result if ($s) { echo 'Sent !'; } else { print_r($_RESULT); } // disconnect SMTP::disconnect($c);
/** * This uses the SMTP class alone to check that a connection can be made to an SMTP server, * authenticate, then disconnect */ //SMTP needs accurate times, and the PHP time zone MUST be set //This should be done in your php.ini, but this is how to do it if you don't have access to that date_default_timezone_set('Etc/UTC'); require '../PHPMailerAutoload.php'; //Create a new SMTP instance $smtp = new SMTP(); //Enable connection-level debug output $smtp->do_debug = SMTP::DEBUG_CONNECTION; try { //Connect to an SMTP server if ($smtp->connect('mail.example.com', 25)) { //Say hello if ($smtp->hello('localhost')) { //Put your host name in here //Authenticate if ($smtp->authenticate('username', 'password')) { echo "Connected ok!"; } else { throw new Exception('Authentication failed: ' . $smtp->getLastReply()); } } else { throw new Exception('HELO failed: ' . $smtp->getLastReply()); } } else { throw new Exception('Connect failed'); }
/** * Initiate a connection to an SMTP server. * Returns false if the operation failed. * * @param array $options An array of options compatible with stream_context_create() * * @uses SMTP * * @throws phpmailerException * * @return bool */ public function smtpConnect($options = []) { if (is_null($this->smtp)) { $this->smtp = $this->getSMTPInstance(); } // Already connected? if ($this->smtp->connected()) { return true; } $this->smtp->setTimeout($this->Timeout); $this->smtp->setDebugLevel($this->SMTPDebug); $this->smtp->setDebugOutput($this->Debugoutput); $this->smtp->setVerp($this->do_verp); $hosts = explode(';', $this->Host); $lastexception = null; foreach ($hosts as $hostentry) { $hostinfo = []; if (!preg_match('/^((ssl|tls):\\/\\/)*([a-zA-Z0-9\\.-]*):?([0-9]*)$/', trim($hostentry), $hostinfo)) { // Not a valid host entry continue; } // $hostinfo[2]: optional ssl or tls prefix // $hostinfo[3]: the hostname // $hostinfo[4]: optional port number // The host string prefix can temporarily override the current setting for SMTPSecure // If it's not specified, the default value is used $prefix = ''; $tls = $this->SMTPSecure == 'tls'; if ($hostinfo[2] == 'ssl' or $hostinfo[2] == '' and $this->SMTPSecure == 'ssl') { $prefix = 'ssl://'; $tls = false; // Can't have SSL and TLS at once } elseif ($hostinfo[2] == 'tls') { $tls = true; // tls doesn't use a prefix } $host = $hostinfo[3]; $port = $this->Port; $tport = (int) $hostinfo[4]; if ($tport > 0 and $tport < 65536) { $port = $tport; } if ($this->smtp->connect($prefix . $host, $port, $this->Timeout, $options)) { try { if ($this->Helo) { $hello = $this->Helo; } else { $hello = $this->serverHostname(); } $this->smtp->hello($hello); if ($tls) { if (!$this->smtp->startTLS()) { throw new phpmailerException($this->lang('connect_host')); } // We must resend HELO after tls negotiation $this->smtp->hello($hello); } if ($this->SMTPAuth) { if (!$this->smtp->authenticate($this->Username, $this->Password, $this->AuthType, $this->Realm, $this->Workstation)) { throw new phpmailerException($this->lang('authenticate')); } } return true; } catch (phpmailerException $exc) { $lastexception = $exc; // We must have connected, but then failed TLS or Auth, so close connection nicely $this->smtp->quit(); } } } // If we get here, all connection attempts have failed, so close connection hard $this->smtp->close(); // As we've caught all exceptions, just report whatever the last one was if ($this->exceptions and !is_null($lastexception)) { throw $lastexception; } return false; }
function send_mail($mailto, $subject, $content, $sender_name = null, $sender_address = null) { // $subject=iconv("UTF-8", "EUC-KR", $subject); // $content=iconv("UTF-8", "EUC-KR", $content); if (!$sender_name) { $settings = new Settings(); $sender_name = $settings->default_mail_sender_name; //$settings->default_mail_sender_address; } //return mailer ($from, $fname, $to, $cc, $bcc, $subject, $content, $file, $type, $charset, $textencode) $smtp_server = "uwa64-001.cafe24.com"; $smtp_user = "******"; $smtp_passwd = "ok1234"; $sender_address = "*****@*****.**"; $boundary = "___==MultiPart_" . strtoupper(md5(uniqid(rand()))) . "==___"; $smtp_server = "smtp.gmail.com"; $smtp_user = "******"; $smtp_passwd = "ok123456"; $sender_address = "*****@*****.**"; $smtp_sock = fsockopen($smtp_server, 25); /* fputs($smtp_sock, "HELO $smtp_server\r\n"); fputs($smtp_sock, "VRFY $smtp_user\r\n"); fputs($smtp_sock, "MAIL FROM:$sender_address\r\n"); fputs($smtp_sock, "RCPT TO:$mailto\r\n"); fputs($smtp_sock, "DATA\r\n"); fputs($smtp_sock, "From: $sender_name<$sender_address>\r\n"); fputs($smtp_sock, "To: $mailto\r\n"); fputs($smtp_sock, "X-Mailer: miplus\r\n"); fputs($smtp_sock, "Content-Type: text/html;"); fputs($smtp_sock, "charset=UTF-8\r\n"); fputs($smtp_sock, "MIME-Version: 1.0\r\n"); fputs($smtp_sock, "Subject: $subject\r\n\r\n"); fputs($smtp_sock, $content); fputs($smtp_sock, "\r\n\r\n.\r\nQUIT\r\n"); */ //include_once ("../../app/XPM/smtp.php"); require_once "../../app/XPM/SMTP.php"; $f = "*****@*****.**"; $t = $mailto; $p = "trail1"; $c = $content; $m = 'From: ' . $f . "\r\n" . 'To: ' . $t . "\r\n" . 'Subject: ' . $subject . "\r\n" . 'Content-Type: text/html' . "\r\n\r\n" . $content; // connect to MTA server (relay) 'smtp.gmail.com' via SSL (TLS encryption) with authentication using port '465' and timeout '10' secounds // make sure you have OpenSSL module (extension) enable on your php configuration $c = SMTP::connect('smtp.gmail.com', 465, $f, $p, 'tls', 10) or die(print_r($_RESULT)); // send mail relay $s = SMTP::send($c, array($t), $m, $f); /* // print result if ($s) echo 'Sent !'; else print_r($_RESULT); */ // disconnect SMTP::disconnect($c); }
// manage php errors $from = trim($user); $to = trim($recipients); $toArray = explode(",", $recipients); $subj = 'Solicitação de peças para equipamento'; $content = '<br/><h1>SOLICITAÇÃO DE PEÇAS</h1>'; $content = $content . '<div style="clear:both;"><br/><br/></div>'; $content = $content . 'Número da solicitação: ' . str_pad($partRequestId, 5, '0', STR_PAD_LEFT) . '<br/>'; $content = $content . 'Chamado de Serviço: ' . str_pad($serviceCall->id, 5, '0', STR_PAD_LEFT) . '<br/>'; $content = $content . 'Data do Chamado: ' . $serviceCall->dataAbertura . '<br/>'; $content = $content . 'Técnico: ' . $technicianName . '<br/>'; $content = $content . 'Cliente: ' . BusinessPartnerDAO::GetClientName($dataConnector->sqlserverConnection, $serviceCall->businessPartnerCode) . '<br/>'; $content = $content . 'Equipamento: ' . $shortDescription . '<br/>'; $content = $content . 'Modelo: ' . $model . '<br/><br/>'; $content = $content . '<h3>Itens</h3> <div style="border:1px solid black; min-height:100px;" >' . $pecas . '</div><br/><br/>'; $content = $content . '<h3>Revisões</h3><br/>' . $revisions; $message = MIME::message($content, 'text/html', null, 'UTF-8'); // compose message in MIME format $mess = MIME::compose(null, $message); // standard mail message RFC2822 $body = 'From: ' . $from . "\r\n" . 'To: ' . $to . "\r\n" . 'Subject: ' . $subj . "\r\n" . $mess['header'] . "\r\n\r\n" . $mess['content']; $conn = SMTP::connect($host, $port, $user, $pass, $vssl) or die('Falha na conexão - ' . print_r($_RESULT)); $sent = SMTP::send($conn, array($toArray[0]), $body, $from); if ($sent) { echo 'Email enviado com sucesso!'; } else { echo 'Falha no envio - ' . print_r($_RESULT); } SMTP::disconnect($conn); // Fecha a conexão com o banco de dados $dataConnector->CloseConnection();
/** * Send email using authenticated STMP with TLS */ function sendResetMail($to, $newpass) { $smtp = new SMTP(); //$smtp->setDebugLevel(4); //$smtp->setDebugOutput("error_log"); $host = $this->config['smtp']['host']; $port = $this->config['smtp']['port']; // Connect if (!$smtp->connect($host, $port)) { return $smtp->getError(); } // EHLO if (!$smtp->hello("me")) { return $smtp->getError(); } // STARTTLS if (!$smtp->startTLS()) { return $smtp->getError(); } // EHLO if (!$smtp->hello("me")) { return $smtp->getError(); } // AUTH LOGIN $username = $this->config['smtp']['username']; $password = $this->config['smtp']['password']; if (!$smtp->authenticate($username, $password)) { return $smtp->getError(); } // MAIL FROM $from = $this->config['smtp']['from']; if (!$smtp->mail($from)) { return $smtp->getError(); } // RCPT TO if (!$smtp->recipient($to)) { return $smtp->getError(); } // DATA $msg = str_replace("@@email@@", $to, str_replace("@@newpass@@", $newpass, $this->config['smtp']['msgtemplate'])); if (!$smtp->data($msg)) { return $smtp->getError(); } // QUIT if (!$smtp->quit()) { return $smtp->getError(); } // Disconnect and close $smtp->close(); return null; }
public function checkSmtp() { //Create a new SMTP instance $smtp = new \SMTP(); //Enable connection-level debug output $smtp->do_debug = \SMTP::DEBUG_CONNECTION; try { //Connect to an SMTP server if ($smtp->connect($this->getSmtpServer()->getSmtpHost(), $this->getSmtpServer()->getSmtpPort())) { //Say hello if ($smtp->hello($this->smtp->getSmtpHost())) { //Put your host name in here //Authenticate dump($this->getSmtpServer()->getSmtpUsername()); dump($this->getSmtpServer()->getSmtpPassword()); if ($smtp->authenticate($this->getSmtpServer()->getSmtpUsername(), $this->getSmtpServer()->getSmtpPassword())) { return true; } else { throw new \Exception('Authentication failed: ' . $smtp->getLastReply()); } } else { throw new \Exception('HELO failed: ' . $smtp->getLastReply()); } } else { throw new \Exception('Connect failed'); } } catch (\Exception $e) { throw new \Exception('SMTP error: ' . $e->getMessage()); } //Whatever happened, close the connection. $smtp->quit(true); }
private function _send_mail($msgdata) { $smtp = new SMTP(); $smtp->debug = $this->debug; if (!$smtp->connect($this->host, $this->port, $this->timeout)) { $this->error_msg = "SMTP Error: could not connect to SMTP host server"; $this->error_msg .= "[" . $this->host . ":" . $this->port . "]"; return false; } if ($this->auth_login) { if (!$smtp->auth_hello($this->helo, $this->auth_user, $this->auth_pass)) { $this->error_msg = "SMTP Error: Invalid username/password"; if ($smtp->error_msg) { $this->error_msg .= "<br>" . $smtp->error_msg; } return false; } } else { $smtp->hello($this->helo); } if (!$smtp->mail_from(sprintf("<%s>", $this->from))) { $this->error_msg = "SMTP Error: Mail from [" . $this->from . "] not accepted."; if ($smtp->error_msg) { $this->error_msg .= "<br>" . $smtp->error_msg; } return false; } $iToCount = count($this->to); for ($i = 0; $i < $iToCount; $i++) { if (!$smtp->recipient(sprintf("<%s>", $this->to[$i][0]))) { $this->error_msg = "SMTP Error: recipient [" . $this->to[$i][0] . "] not accepted."; if ($smtp->error_msg) { $this->error_msg .= "<br>" . $smtp->error_msg; } return false; } } $iCcCount = count($this->cc); for ($i = 0; $i < $iCcCount; $i++) { if (!$smtp->recipient(sprintf("<%s>", $this->cc[$i][0]))) { $this->error_msg = "SMTP Error: recipient [" . $this->cc[$i][0] . "] not accepted."; if ($smtp->error_msg) { $this->error_msg .= "<br>" . $smtp->error_msg; } return false; } } $iBccCount = count($this->bcc); for ($i = 0; $i < $iBccCount; $i++) { if (!$smtp->recipient(sprintf("<%s>", $this->bcc[$i][0]))) { $this->error_msg = "SMTP Error: recipient [" . $this->bcc[$i][0] . "] not accepted."; if ($smtp->error_msg) { $this->error_msg .= "<br>" . $smtp->error_msg; } return false; } } if (!$smtp->data($msgdata)) { $this->error_msg = "SMTP Error: data not accepted"; if ($smtp->error_msg) { $this->error_msg .= "<br>" . $smtp->error_msg; } return false; } $smtp->_quit(); }
/** * Send mail via SMTP. * @return boolean True on success. */ protected function smtpSend() { $this->smtp = new SMTP(); $allRecipients = array(); $badRecipients = array(); try { // <editor-fold desc="Prepare SMTP host."> $hostInfo = array(); if (!preg_match('/^((ssl|tls):\\/\\/)*([a-zA-Z0-9\\.-]*):?([0-9]*)$/', $this->smtpHost, $hostInfo)) { throw new \Exception("Invalid SMTP host."); } $prefix = ""; $tls = $this->smtpSecure == "tls"; if ($hostInfo[2] == "ssl" || $hostInfo[2] == "" && $this->smtpSecure == "ssl") { $prefix = "ssl://"; $tls = false; } elseif ($hostInfo[2] == "tls") { $tls = true; } $host = $prefix . $hostInfo[3]; $tport = (int) $hostInfo[4]; $port = $tport > 0 && $tport < 65536 ? $tport : $this->smtpPort; // </editor-fold> if (!$this->smtp->connect($host, $port)) { throw new \Exception("Could not connect to SMTP host."); } $hello = !empty($this->smtpHelo) ? $this->smtpHelo : $this->serverHostname(); if (!$this->smtp->hello($hello)) { throw new \Exception("Could not send HELO."); } if ($tls) { if (!$this->smtp->tls()) { throw new \Exception("Could not start TLS."); } $this->smtp->hello($hello); } if ($this->smtpAuth && !$this->smtp->authenticate($this->smtpUsername, $this->smtpPassword)) { throw new \Exception("Could not authenticate."); } if (!$this->smtp->mail($this->from[0])) { throw new \Exception("Could not send MAIL FROM."); } foreach ($this->to as $to) { if (!$this->smtp->recipient($to[0])) { $badRecipients[] = $to[0]; } else { $allRecipients[] = $to[0]; } } // foreach ($this->cc as $cc) { // if (!$this->smtp->recipient($cc[0])) // $badRecipients[] = $cc[0]; // else // $allRecipients[] = $cc[0]; // } // // foreach ($this->bcc as $bcc) { // if (!$this->smtp->recipient($bcc[0])) // $badRecipients[] = $bcc[0]; // else // $allRecipients[] = $bcc[0]; // } if (count($allRecipients) > 0 && !$this->smtp->data($this->header . $this->body)) { throw new \Exception("Data was not accepted."); } if ($this->smtpKeepAlive) { $this->smtp->reset(); } else { $this->smtp->quit(); $this->smtp->close(); } return true; } catch (\Exception $e) { if (count($badRecipients) > 0) { $rcpt = implode(", ", $badRecipients); throw new EmailException(array("Failed delivery to the following recipient(s): %s.", $rcpt)); } throw new EmailException($e->getMessage()); } }