Можете ли вы прикрепить файл, полученный из скрипта PHP к почте со Swift Mailer? - PullRequest
0 голосов
/ 26 марта 2020

Я работаю над функцией передачи почты кому-либо, я могу извлечь вложения из 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));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...