Я работаю над функцией передачи почты кому-либо, я могу извлечь вложения из API Gmail из скрипта PHP, поэтому я использую file_get_contents и использую ссылку на скрипт, чтобы получить его, но, похоже, file_get_contents возвращать false для каждого файла, через почту go, но без вложений.
- Нужно ли указывать несколько заголовков в моем скрипте, чтобы получить вложение, чтобы Swift Mailer мог правильно его получить?
- Последний вариант: нужно ли мне временно загрузить файл?
Получить вложение:
$file = $this->mailer->getAttachment($id);
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=\"".$file['name']."\"");
echo $file['data'];
exit();`
Прикрепить его к почте:
foreach ($data['attachments'] as $attachment) {
if (\is_array($attachment)) {
if ($content = \file_get_contents(\urlencode($attachment['url']))) {
$mail->attach(Swift_Attachment::newInstance(
$content,
$attachment['name'],
(new finfo(FILEINFO_MIME))->buffer($content)
));
}
} else {
$mail->attach(Swift_Attachment::fromPath($attachment));
}
}