π Source: fetch_emails.php
<?php
session_name('INBOXZERO');
session_start();
require_once 'vendor/autoload.php';
header('Content-Type: application/json');
if (!isset($_SESSION['access_token'])) {
echo json_encode(['error' => 'Nu eΘti autentificat']);
exit();
}
try {
$client = new Google\Client();
$client->setAccessToken($_SESSION['access_token']);
$service = new Google\Service\Gmail($client);
$optParams = ['maxResults' => 20, '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 = 'Expeditor necunoscut';
$subject = '(fΔrΔ subiect)';
$date = '';
$threadId = $message->getThreadId();
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();
}
try {
$dateObj = new DateTime($date);
$dateObj->setTimezone(new DateTimeZone('Europe/Bucharest'));
$date = $dateObj->format('d M Y, H:i');
} catch (Exception $e) {}
$emails[] = [
'id' => $message->getId(),
'threadId' => $threadId,
'from' => htmlspecialchars($from),
'subject' => htmlspecialchars($subject),
'date' => htmlspecialchars($date)
];
}
}
// AfiΘeazΔ cele mai noi emailuri primele
$emails = array_reverse($emails);
echo json_encode($emails);
} catch (Exception $e) {
echo json_encode(['error' => $e->getMessage()]);
}
?>
β Back