215 lines
8.0 KiB
PHP
215 lines
8.0 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
require_once __DIR__ . '/ninjamail.class.php';
|
|
|
|
/**
|
|
* ninjaMail API teljes körű tesztelő szkript
|
|
*
|
|
* Anonimizált tesztkörnyezet. Valós környezetben a konfiguráció
|
|
* a NINJAMAIL_HOST és NINJAMAIL_KEY környezeti változókon keresztül
|
|
* vagy az alábbi változók megadásával állítható be.
|
|
*/
|
|
$host = getenv('NINJAMAIL_HOST') ?: 'https://example.org';
|
|
$key = getenv('NINJAMAIL_KEY') ?: '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef';
|
|
|
|
$testEmail = 'teszt.felhasznalo@example.com';
|
|
$sendEmail = 'cimzett@example.com';
|
|
|
|
echo "====================================================\n";
|
|
echo "ninjaMail API funkciók tesztelése\n";
|
|
echo "Host: $host\n";
|
|
echo "Key: " . substr($key, 0, 8) . "..." . substr($key, -8) . "\n";
|
|
echo "====================================================\n\n";
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// 1. Alaposztály
|
|
// ---------------------------------------------------------------------------
|
|
echo "=== 1. ninjaMail ALAPOSZTÁLY TESZTELÉSE ===\n";
|
|
$base = new ninjaMail($host, $key);
|
|
echo "[+] check(): ";
|
|
var_dump($base->check());
|
|
|
|
echo "[+] login(): ";
|
|
try {
|
|
$login = $base->login();
|
|
echo json_encode($login, JSON_UNESCAPED_UNICODE) . "\n";
|
|
} catch (Throwable $e) {
|
|
echo "Hiba: " . $e->getMessage() . "\n";
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// 2. Lista műveletek
|
|
// ---------------------------------------------------------------------------
|
|
echo "\n=== 2. LISTA MŰVELETEK (ninjaMail::process) ===\n";
|
|
$listId = null;
|
|
try {
|
|
echo "[+] Lista létrehozása (list -> new): ";
|
|
$createdList = $base->process('list', ['new' => true, 'name' => 'Teszt Lista 2026']);
|
|
echo json_encode($createdList, JSON_UNESCAPED_UNICODE) . "\n";
|
|
$listId = $createdList->id ?? null;
|
|
|
|
echo "[+] Listák lekérdezése (list -> get): ";
|
|
$lists = $base->process('list', ['get' => true]);
|
|
echo json_encode($lists, JSON_UNESCAPED_UNICODE) . "\n";
|
|
} catch (Throwable $e) {
|
|
echo "Hiba: " . $e->getMessage() . "\n";
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// 3. Feliratkozások
|
|
// ---------------------------------------------------------------------------
|
|
echo "\n=== 3. ninjaMailSubscription TESZTELÉSE ===\n";
|
|
$sub = new ninjaMailSubscription($host, $key);
|
|
$activeListId = $listId ? (int)$listId : 1;
|
|
|
|
echo "[+] list($activeListId): ";
|
|
var_dump($sub->list($activeListId));
|
|
|
|
echo "[+] activated(true): ";
|
|
var_dump($sub->activated(true));
|
|
|
|
echo "[+] namechange(true): ";
|
|
var_dump($sub->namechange(true));
|
|
|
|
try {
|
|
echo "[+] subscribe(\"$testEmail\", \"Teszt Elek\"): ";
|
|
$subRes = $sub->subscribe($testEmail, 'Teszt Elek');
|
|
var_dump($subRes);
|
|
echo " Válasz: " . json_encode($sub->data, JSON_UNESCAPED_UNICODE) . "\n";
|
|
|
|
echo "[+] unsubscribe(\"$testEmail\"): ";
|
|
$unsubRes = $sub->unsubscribe($testEmail);
|
|
var_dump($unsubRes);
|
|
echo " Válasz: " . json_encode($sub->data, JSON_UNESCAPED_UNICODE) . "\n";
|
|
} catch (Throwable $e) {
|
|
echo "Hiba: " . $e->getMessage() . "\n";
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// 4. Hírlevelek
|
|
// ---------------------------------------------------------------------------
|
|
echo "\n=== 4. ninjaMailNewsletter TESZTELÉSE ===\n";
|
|
$nl = new ninjaMailNewsletter($host, $key);
|
|
echo "[+] subject(): ";
|
|
var_dump($nl->subject('Rendszertesztek 2026 - Hírlevél'));
|
|
|
|
echo "[+] message(): ";
|
|
$longContent = '<h1>Kedves Feliratkozónk!</h1><p>Ez egy hivatalos teszt hírlevél, amely a ninjaMail API funkcionalitását teszteli. A hírlevél tartalma megfelelően hosszú szöveget tartalmaz, hogy teljesítse a rendszer tartalmi és formai követelményeit. További információkért látogasson el weboldalunkra vagy keresse ügyfélszolgálatunkat.</p><p>Üdvözlettel,<br>A rendszer üzemeltetője</p>';
|
|
var_dump($nl->message($longContent));
|
|
|
|
$newsletterId = null;
|
|
try {
|
|
echo "[+] create(): ";
|
|
$newsletterId = $nl->create();
|
|
var_dump($newsletterId);
|
|
echo " Válasz: " . json_encode($nl->data, JSON_UNESCAPED_UNICODE) . "\n";
|
|
|
|
echo "[+] newsletter() getter: ";
|
|
var_dump($nl->newsletter());
|
|
|
|
echo "[+] update(): ";
|
|
$nl->subject('Rendszertesztek 2026 - Frissített hírlevél tárgy');
|
|
$nlUp = $nl->update();
|
|
var_dump($nlUp);
|
|
echo " Válasz: " . json_encode($nl->data, JSON_UNESCAPED_UNICODE) . "\n";
|
|
|
|
echo "[+] get(): ";
|
|
$allNl = $nl->get();
|
|
echo json_encode($allNl, JSON_UNESCAPED_UNICODE) . "\n";
|
|
|
|
echo "[+] send() (időzítve +1 évre): ";
|
|
$sendNl = $nl->send(strtotime('+1 year'));
|
|
var_dump($sendNl);
|
|
echo " Válasz: " . json_encode($nl->data, JSON_UNESCAPED_UNICODE) . "\n";
|
|
} catch (Throwable $e) {
|
|
echo "Hiba: " . $e->getMessage() . "\n";
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// 5. Kampányok
|
|
// ---------------------------------------------------------------------------
|
|
echo "\n=== 5. ninjaMailCampaign TESZTELÉSE ===\n";
|
|
$camp = new ninjaMailCampaign($host, $key);
|
|
$campaignId = null;
|
|
try {
|
|
echo "[+] create(\"API Teszt Kampány\"): ";
|
|
$campaignId = $camp->create('API Teszt Kampány');
|
|
var_dump($campaignId);
|
|
echo " Válasz: " . json_encode($camp->data, JSON_UNESCAPED_UNICODE) . "\n";
|
|
|
|
echo "[+] campaign() getter: ";
|
|
var_dump($camp->campaign());
|
|
|
|
echo "[+] update() (lista csatolása): ";
|
|
$campUp = $camp->update([(int)$activeListId]);
|
|
var_dump($campUp);
|
|
echo " Válasz: " . json_encode($camp->data, JSON_UNESCAPED_UNICODE) . "\n";
|
|
|
|
echo "[+] attach(" . ($newsletterId ?? 1) . ") (hírlevél csatolása): ";
|
|
$campAtt = $camp->attach((int)($newsletterId ?? 1));
|
|
var_dump($campAtt);
|
|
echo " Válasz: " . json_encode($camp->data, JSON_UNESCAPED_UNICODE) . "\n";
|
|
|
|
echo "[+] remove() (kampány törlése): ";
|
|
$campRem = $camp->remove();
|
|
var_dump($campRem);
|
|
echo " Válasz: " . json_encode($camp->data, JSON_UNESCAPED_UNICODE) . "\n";
|
|
} catch (Throwable $e) {
|
|
echo "Hiba: " . $e->getMessage() . "\n";
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// 6. Egyedi levélküldés
|
|
// ---------------------------------------------------------------------------
|
|
echo "\n=== 6. ninjaMailSend TESZTELÉSE ===\n";
|
|
$sender = new ninjaMailSend($host, $key);
|
|
echo "[+] to(\"$sendEmail\"): ";
|
|
var_dump($sender->to($sendEmail));
|
|
|
|
echo "[+] subject(): ";
|
|
var_dump($sender->subject('Tranzakciós teszt e-mail'));
|
|
|
|
echo "[+] message(): ";
|
|
var_dump($sender->message('<p>Ez egy egyedi tranzakciós teszt e-mail.</p>'));
|
|
|
|
try {
|
|
echo "[+] send(): ";
|
|
$sendRes = $sender->send();
|
|
var_dump($sendRes);
|
|
echo " Válasz: " . json_encode($sender->data, JSON_UNESCAPED_UNICODE) . "\n";
|
|
} catch (Throwable $e) {
|
|
echo "Hiba: " . $e->getMessage() . "\n";
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// 7. Statisztika
|
|
// ---------------------------------------------------------------------------
|
|
echo "\n=== 7. ninjaMailStatistics TESZTELÉSE ===\n";
|
|
$stat = new ninjaMailStatistics($host, $key);
|
|
try {
|
|
$statNlId = (int)($newsletterId ?? 1);
|
|
echo "[+] get($statNlId): ";
|
|
$statRes = $stat->get($statNlId);
|
|
echo json_encode($statRes, JSON_UNESCAPED_UNICODE) . "\n";
|
|
} catch (Throwable $e) {
|
|
echo "Hiba: " . $e->getMessage() . "\n";
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// 8. Takarítás (ha hoztunk létre listát)
|
|
// ---------------------------------------------------------------------------
|
|
if ($listId) {
|
|
echo "\n=== 8. TAKARÍTÁS (Teszt lista törlése) ===\n";
|
|
try {
|
|
echo "[+] remove list $listId: ";
|
|
$delList = $base->process('list', ['remove' => true, 'id' => $listId]);
|
|
echo json_encode($delList, JSON_UNESCAPED_UNICODE) . "\n";
|
|
} catch (Throwable $e) {
|
|
echo "Hiba: " . $e->getMessage() . "\n";
|
|
}
|
|
}
|
|
|
|
echo "\nTesztelés befejezve.\n";
|