К имени прикрепляемого файла нужно добавить расширение ".xlsx". Также следует учитывать, что нужно использовать явное приведение значения переменной к нужному типу. Например, в Вашем случае использовать приведение в строку (свойство AsStr):
aMail.AttachFile(' C:\Отчеты Асино\Гагарина\ ' + FileNameReport.AsStr + '.xlsx');Чтобы все работало корректно, нужно производить отправку e-mail только после сохранения файла отчета. Если вызвать сохранение отчета в Excel и отправку файла отчета на e-mail в одном скрипте, то скрипт выполнится мгновенно, на момент отправки файла отчет не успеет сохраниться и отправлять будет нечего. Поэтому можно формировать и сохранять отчет как указано у Вас в скрипте в 15:00, а производить отправку, к примеру через 5 минут, в 15:05, когда отчет точно будет сформирован и сохранен. Создайте отдельный секундный скрипт для отправки отчета, например:
var
aMail: TM_Mail;
begin
if (HourOf(Now) = 15) and (MinuteOf(Now) = 5) then // если сейчас 15:05
if FileNameReport.AsStr <> '' then
begin
FileNameReport.Value := '';
aMail := SendMail('Simple-Scada', 'Ежедневный отчет по энергоресурсам Гагарина', 'Отчет создан автоматически.');
aMail.AttachFile(' C:\Отчеты Асино\Гагарина\ ' + FileNameReport.AsStr + '.xlsx');
end;
end.
Чтобы отправка выполнилась однократно, можно использовать переменную FileNameReport и после отправки сбрасывать ее.