Отладка по одной вещи за раз.Учитывая, что ваше сообщение действительно приходит, вам не нужно беспокоиться о процессе отправки.Если вы генерируете вложение и отправляете его, и оно терпит неудачу, вы не знаете, является ли это поколение или отправка неудовлетворительным, поэтому дважды проверьте , что ваше поколение работает первым, само по себе.
Если вы абсолютно уверены, что ваша резервная копия для сгенерирована правильно (я отмечаю, что ваша функция резервного копирования не возвращает значение, поэтому нет способа проверить, не сработала ли она), проверьте, работает ли операция вложения.addAttachment()
возвращает логическое значение false
в случае сбоя вложения, поэтому убедитесь, что:
if (!$mail->addAttachment('secret-backup-03-Apr-2019-2105361.zip')) {
throw new Exception('Attachment failed');
}
Я бы также рекомендовал отправлять через SMTP, а не mail()
(который вы используете в данный момент), так как SMTPбыстрее, безопаснее и намного проще в отладке:
$mail->isSMTP();
$mail->Host = 'localhost';
$mail->SMTPDebug = 2;
Ваша функция резервного копирования выглядит потенциально небезопасной: убедитесь, что вы применили escapeshellarg()
ко всем сгенерированным аргументам, передаваемым в оболочку.