У меня есть сценарий, генерирующий файл .pdf. Этот скрипт возвращает этот файл как строку, а затем я могу сохранить его с помощью file_put_contents ()
$output = $dompdf->output(); file_put_contents("myfile.pdf", $output);
Я хочу добавить этот файл в качестве вложения в свой адрес электронной почты с помощью PHPMailer. Если у меня есть файл на диске, я просто пишу путь к нему и новое имя:
$mail->addAttachment('/path/to/file.pdf', 'newname.pdf');
Но могу ли я добавить вложение без сохранения myfile.pdf на диск? Что-то вроде того:
$mail->addAttachment($output, 'myfile.pdf');
Эта строка возвращает ошибку:
PHP Fatal error: Call to a member function addAttachment() on a non-object
Как преобразовать тип строки в тип файла без сохранения?
UPD: полный код
$output = $dompdf->output(); $name = 'title.pdf'; $mail->isSMTP(); // Set mailer to use SMTP $mail->SMTPDebug = 2; $mail->Host = 'smtp.***.org'; // Specify main and backup SMTP servers $mail->SMTPAuth = true; // Enable SMTP authentication $mail->Username = '***@***.orgg'; // SMTP username $mail->Password = '******************'; // SMTP password $mail->SMTPSecure = 'tls'; $mail->From = 'aaa@bbb.com'; $mail->FromName = 'John'; $mail->addAddress('peter@parker.com', 'Joe User'); // Add a recipient $mail->addStringAttachment($output, $name); // Set email format to HTML $mail->Subject = 'Here is the subject'; $mail->Body = 'This is the HTML message body <b>in bold!</b>'; $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; if(!$mail->send()) { echo 'Message could not be sent.'; echo 'Mailer Error: ' . $mail->ErrorInfo; } else { echo 'Message has been sent'; }