Я думаю, что частью вашей проблемы является то, что вы выбираете неагрегированные столбцы с групповым запросом. Вы должны четко указать, какие значения вы хотите вернуть в совокупном результате запроса.
SELECT sentto, MAX(datetime) AS datetime FROM emails
GROUP BY sentto
ORDER BY datetime desc LIMIT $eu, $limit;
Я все еще не уверен, что это дает вам то, что вы хотите. Похоже, вы хотите на самом деле получить строки для каждого отдельного электронного письма и просто использовать максимум GROUP BY для сортировки. Чтобы сделать это, вам, вероятно, потребуется выполнить вышеуказанный запрос, а затем вернуться и выполнить второй запрос для каждого отправленного сообщения. Я не могу придумать способ сделать это одним запросом.
SELECT * FROM emails
WHERE sentto=$sid
ORDER BY datetime DESC;
(Для каждого отправленного в первый запрос).