File: vendor/phpmailer/phpmailer/examples/smtp_check.phps

Recommend this page to a friend!
  Classes of Ganesh Kandu  >  kchat  >  vendor/phpmailer/phpmailer/examples/smtp_check.phps  >  Download  
File: vendor/phpmailer/phpmailer/examples/smtp_check.phps
Role: Example script
Content type: text/plain
Description: Example script
Class: kchat
Database driven PHP live chat system
Author: By
Last change:
Date: 2 years ago
Size: 1,939 bytes


Class file image Download
 * 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


//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('', 25)) {
        throw new
Exception('Connect failed');
//Say hello
if (!$smtp->hello(gethostname())) {
        throw new
Exception('EHLO failed: ' . $smtp->getError()['error']);
//Get the list of ESMTP services the server offers
$e = $smtp->getServerExtList();
//If server can do TLS encryption, use it
if (is_array($e) && array_key_exists('STARTTLS', $e)) {
$tlsok = $smtp->startTLS();
        if (!
$tlsok) {
            throw new
Exception('Failed to start encryption: ' . $smtp->getError()['error']);
//Repeat EHLO after STARTTLS
if (!$smtp->hello(gethostname())) {
            throw new
Exception('EHLO (2) failed: ' . $smtp->getError()['error']);
//Get new capabilities list, which will usually now include AUTH if it didn't before
$e = $smtp->getServerExtList();
//If server supports authentication, do it (even if no encryption)
if (is_array($e) && array_key_exists('AUTH', $e)) {
        if (
$smtp->authenticate('username', 'password')) {
"Connected ok!";
        } else {
            throw new
Exception('Authentication failed: ' . $smtp->getError()['error']);
} catch (
Exception $e) {
'SMTP error: ' . $e->getMessage(), "\n";
//Whatever happened, close the connection.

For more information send a message to info at phpclasses dot org.