Sample code for 30+ languages & platforms
PHP

IMAP Login Secure

Demonstrates how to use the LoginSecure method introduced in Chilkat v9.5.0.71.

Chilkat PHP Downloads

Chilkat2 PHP
<?php

use Chilkat2\Crypt2;
use Chilkat2\Imap;
use Chilkat2\JsonObject;
use Chilkat2\SecureString;

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

$imap = new Imap();

// Connect to an IMAP server..
$imap->Ssl = true;
$imap->Port = 993;
try {
    $imap->Connect('imap.mail.me.com');

    // Imagine we've previously saved our encrypted login and password within a JSON config file
    // that contains this:

    // {
    //   "imap_login": "fLkxsfnVaIWLiL/R32jo6g==",
    //   "imap_password": "/NbaFBoCftBLFf8WBU9Xtw=="
    // }

    $json = new JsonObject();
    $json->LoadFile('qa_data/passwords/imap.json');

    $crypt = new Crypt2();

    // These are the encryption settings we previously used to encrypt the credentials within the JSON config file.
    $crypt->CryptAlgorithm = 'aes';
    $crypt->CipherMode = 'cbc';
    $crypt->KeyLength = 128;
    $crypt->SetEncodedKey('000102030405060708090A0B0C0D0E0F', 'hex');
    $crypt->SetEncodedIV('000102030405060708090A0B0C0D0E0F', 'hex');
    $crypt->EncodingMode = 'base64';

    $ssLogin = new SecureString();
    $ssPassword = new SecureString();

    // Decrypt to the secure string.  (the strings will still held in memory encrypted, but are now encrypted using
    // a randomly generated session key.)
    $crypt->DecryptSecureENC($json->StringOf('imap_login'), $ssLogin);
    $crypt->DecryptSecureENC($json->StringOf('imap_password'), $ssPassword);

    // Pass the credentials to the LoginSecure method:
    $imap->LoginSecure($ssLogin, $ssPassword);
} catch (\Chilkat2\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}

// ...

$imap->Disconnect();