| Current Path : /var/www/cesa.co.za/ |
| Current File : /var/www/cesa.co.za/test_base64_email.php |
<?php
require_once 'php/includes/mail/MailMessages.php';
// Test email content similar to the one provided
$testEmail = 'From gillian@cesa.co.za Fri Jul 04 14:31:00 2025
Return-path: <gillian@cesa.co.za>
Envelope-to: cesa-test@cesasce.co.za
Delivery-date: Fri, 04 Jul 2025 14:31:00 +0200
From: Gillian Wands <gillian@cesa.co.za>
To: "cesa-test@cesasce.co.za" <cesa-test@cesasce.co.za>
Subject: =?utf-8?B?Rlc6IFJlbWluZGVyIHwgSm9pbiBvdXIgRklESUMgQ3JlZGVudGlhbGluZyBJ?=
=?utf-8?B?bmZvcm1hdGlvbiBTZXNzaW9uIOKAkyAxIEp1bHkgMjAyNQ==?=
Content-Type: multipart/alternative;
boundary="_000_DB8P190MB07614530ADB4497030192BB29142ADB8P190MB0761EURP_"
MIME-Version: 1.0
--_000_DB8P190MB07614530ADB4497030192BB29142ADB8P190MB0761EURP_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
DQoNCg0KVW5sb2NrIFlvdXIgRW5naW5lZXJpbmcgUG90ZW50aWFsIHdpdGggYSBGSURJQyBDZXJ0
aWZpY2F0aW9uIQ0KDQpXZSBhcmUgZXhjaXRlZCB0byBpbnRyb2R1Y2UgdGhlIGRpc3Rpbmd1aXNo
ZWQgZXhwZXJ0cyB3aG8gd2lsbCBiZSBsZWFkaW5nIG91ciB1cGNvbWluZyBGSURJQyBDcmVkZW50
aWFsaW5nIGluZm9ybWF0aW9uIHNlc3Npb24uIEluIHRoZSBpbmZvcm1hdGlvbiBzZXNzaW9uLCB5
b3Ugd2lsbCBsZWFybiBob3cgeW91IGNhbiBlbmhhbmNlIHlvdXIgZXhwZXJ0aXNlLCBjcmVkaWJp
bGl0eSwgYW5kIGdsb2JhbCBuZXR3b3JrIGluIHRoZSBpbmZyYXN0cnVjdHVyZSBpbmR1c3RyeS4g
UmVnaXN0ZXIgdG9kYXkhDQoNCltodHRwczovL21jdXNlcmNvbnRlbnQuY29tLzA3OGMzMmQ1OWQx
ZDRiMGU4NDg5OTMzNTQvX2NvbXByZXNzZWRzLzJkMGFiMGJiLTRjZGYtMDE3ZC03NmU2LTJlY2U4
NTZlOGQ4ZC5qcGVnXTxodHRwOi8vd3d3LmNlc2EuY28uemEvZXZlbnRyZWcvP2lkPTQ2Nj4NCg0K
DQpSRUdJU1RFUiBOT1c8aHR0cDovL3d3dy5jZXNhLmNvLnphL2V2ZW50cmVnLz9pZD00NjY+DQoN
CltUd2l0dGVyXTxodHRwczovL3R3aXR0ZXIuY29tL3RoZV9jZXNhPg0KW0ZhY2Vib29rXTxodHRw
czovL3d3dy5mYWNlYm9vay5jb20vQ29uc3VsdGluZ0VuZ2luZWVyc1NBPg0KW1dlYnNpdGVdPGh0
dHBzOi8vd3d3LmNlc2EuY28uemEvPg0KW0VtYWlsXTxtYWlsdG86Z2VuZXJhbEBjZXNhLmNvLnph
Pg0KW1lvdVR1YmVdPGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2NoYW5uZWwvVUNMQ2RsT185VERU
VjR3MjNFRlJfbUZBPg0KW0xpbmtlZEluXTxodHRwczovL3d3dy5saW5rZWRpbi5jb20vY29tcGFu
eS9jb25zdWx0aW5nLWVuZ2luZWVycy1zb3V0aC1hZnJpY2EvPg0KW0luc3RhZ3JhbV08aHR0cHM6
Ly93d3cuaW5zdGFncmFtLmNvbS9jb25zdWx0aW5nZW5naW5lZXJzX3NhLz4NCltXaGF0c0FwcF08
aHR0cHM6Ly93YS5tZS9tZXNzYWdlL1ZHV0lGS1NTUVUyTEkxPg0KDQoNCg==
--_000_DB8P190MB07614530ADB4497030192BB29142ADB8P190MB0761EURP_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64
PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
cg==
--_000_DB8P190MB07614530ADB4497030192BB29142ADB8P190MB0761EURP_--';
echo "Testing base64 email parsing...\n\n";
// Parse the email
$parts = MailMessages::splitMessageParts($testEmail);
echo "=== PARSED EMAIL PARTS ===\n";
echo "From: " . $parts['from'] . "\n";
echo "Subject: " . $parts['subject'] . "\n";
echo "Content-Type: " . (isset($parts['headers']['Content-Type']) ? $parts['headers']['Content-Type'] : 'Not set') . "\n";
echo "Boundary: " . $parts['boundary'] . "\n\n";
echo "=== TEXT MESSAGE ===\n";
if (!empty($parts['text_message'])) {
echo "Length: " . strlen($parts['text_message']) . " characters\n";
echo "Content (first 500 chars):\n";
echo substr($parts['text_message'], 0, 500) . "\n";
} else {
echo "No text message found\n";
}
echo "\n=== HTML MESSAGE ===\n";
if (!empty($parts['html_message'])) {
echo "Length: " . strlen($parts['html_message']) . " characters\n";
echo "Content (first 500 chars):\n";
echo substr($parts['html_message'], 0, 500) . "\n";
} else {
echo "No HTML message found\n";
}
echo "\n=== MULTIPART MESSAGE ===\n";
if (!empty($parts['multipart_message'])) {
echo "Length: " . strlen($parts['multipart_message']) . " characters\n";
echo "Content (first 500 chars):\n";
echo substr($parts['multipart_message'], 0, 500) . "\n";
} else {
echo "No multipart message found\n";
}
echo "\n=== FINAL MESSAGE (what will be sent) ===\n";
echo "Length: " . strlen($parts['message']) . " characters\n";
echo "Content (first 500 chars):\n";
echo substr($parts['message'], 0, 500) . "\n";
echo "\n=== VERIFICATION ===\n";
// Verify that base64 content was properly decoded
$expectedTextStart = "Unlock Your Engineering Potential with a FIDIC Certification!";
if (strpos($parts['text_message'], $expectedTextStart) !== false) {
echo "✓ Text message properly decoded from base64\n";
} else {
echo "✗ Text message not properly decoded from base64\n";
}
$expectedHtmlStart = "<html";
if (strpos($parts['html_message'], $expectedHtmlStart) !== false) {
echo "✓ HTML message properly decoded from base64\n";
} else {
echo "✗ HTML message not properly decoded from base64\n";
}
echo "\nTest completed.\n";