📄 Source: fetch_emails.php
<?php
session_start();
require_once 'vendor/autoload.php';
if (!isset($_SESSION['access_token'])) {
http_response_code(401);
echo json_encode(['error' => 'Not authenticated']);
exit();
}
$client = new Google\Client();
$client->setAccessToken($_SESSION['access_token']);
$service = new Google\Service\Gmail($client);
try {
$optParams = [
'maxResults' => 15,
'labelIds' => ['INBOX']
];
$messages = $service->users_messages->listUsersMessages('me', $optParams);
$emails = [];
if ($messages->getMessages()) {
foreach ($messages->getMessages() as $message) {
$msg = $service->users_messages->get('me', $message->getId(), [
'format' => 'metadata',
'metadataHeaders' => ['From', 'Subject', 'Date']
]);
$headers = $msg->getPayload()->getHeaders();
$from = 'Unknown';
$subject = '(no subject)';
$date = '';
foreach ($headers as $header) {
if ($header->getName() == 'From') $from = $header->getValue();
if ($header->getName() == 'Subject') $subject = $header->getValue();
if ($header->getName() == 'Date') $date = $header->getValue();
}
// Convert to Romanian time
try {
$dateObj = new DateTime($date);
$dateObj->setTimezone(new DateTimeZone('Europe/Bucharest'));
$date = $dateObj->format('d M Y, H:i');
} catch (Exception $e) {
// keep original
}
$emails[] = [
'id' => $message->getId(),
'from' => htmlspecialchars($from),
'subject' => htmlspecialchars($subject),
'date' => htmlspecialchars($date)
];
}
}
echo json_encode($emails);
} catch (Exception $e) {
echo json_encode(['error' => $e->getMessage()]);
}
?>
← Back