📄 Source: debug_email_parts.php
<?php
session_start();
require_once 'vendor/autoload.php';
if (!isset($_SESSION['access_token'])) {
die("Not logged in. Please login first at /AgentAI/");
}
$client = new Google\Client();
$client->setAccessToken($_SESSION['access_token']);
$service = new Google\Service\Gmail($client);
// Get the most recent email (or find ChatGPT email)
$optParams = ['maxResults' => 5, 'labelIds' => ['INBOX']];
$messages = $service->users_messages->listUsersMessages('me', $optParams);
echo "<h2>Email Structure Debug</h2>";
if ($messages->getMessages()) {
foreach ($messages->getMessages() as $msg) {
$message = $service->users_messages->get('me', $msg->getId());
$payload = $message->getPayload();
// Get headers
$headers = $payload->getHeaders();
$subject = '';
foreach ($headers as $header) {
if ($header->getName() == 'Subject') {
$subject = $header->getValue();
break;
}
}
echo "<h3>Email: " . htmlspecialchars($subject) . "</h3>";
echo "<pre>";
// Show MIME structure
echo "MIME Type: " . $payload->getMimeType() . "\n";
echo "Has Body: " . ($payload->getBody() ? "Yes" : "No") . "\n";
echo "Has Parts: " . ($payload->getParts() ? count($payload->getParts()) : "No") . "\n\n";
if ($payload->getParts()) {
foreach ($payload->getParts() as $i => $part) {
echo "Part " . ($i+1) . ":\n";
echo " MIME: " . $part->getMimeType() . "\n";
echo " Filename: " . $part->getFilename() . "\n";
echo " Has Body: " . ($part->getBody() ? "Yes (" . strlen($part->getBody()->getData() ?? '') . " bytes)" : "No") . "\n";
echo " Has Parts: " . ($part->getParts() ? count($part->getParts()) : "No") . "\n";
if ($part->getParts()) {
foreach ($part->getParts() as $j => $subPart) {
echo " Subpart " . ($j+1) . ":\n";
echo " MIME: " . $subPart->getMimeType() . "\n";
echo " Has Body: " . ($subPart->getBody() ? "Yes (" . strlen($subPart->getBody()->getData() ?? '') . " bytes)" : "No") . "\n";
// Preview first 200 chars of body if text/plain
if ($subPart->getMimeType() == 'text/plain' && $subPart->getBody() && $subPart->getBody()->getData()) {
$data = $subPart->getBody()->getData();
$decoded = base64_decode(strtr($data, '-_', '+/'));
echo " Preview: " . htmlspecialchars(substr($decoded, 0, 200)) . "...\n";
}
}
}
echo "\n";
}
}
echo "</pre><hr>";
break; // Just show first email
}
} else {
echo "No emails found.";
}
?>
← Back