Вложение с file_get_contents?

Я потратил довольно много времени, пытаясь выяснить какие-либо случаи с отправкой электронной почты с использованием Lavarel 4 и включая вложение в сообщение. Никто даже не говорит об этом, все прикрепляют файл из файловой системы.

У кого-нибудь был опыт отправки электронного письма с приложением изображения (например, http://www.w3schools.com/html/html5.gif) без фактической загрузки его на диск?

1 ответ

Решение

Swift Mailer определенно позволяет вам прикреплять данные, используя Swift_Attachment::newInstance():

http://swiftmailer.org/docs/messages.html

Похоже, у Laravel для этого есть метод-обертка, но он не упоминается в основной документации. Посмотреть здесь:

https://github.com/laravel/framework/blob/4.2/src/Illuminate/Mail/Message.php

http://laravel.com/api/4.2/Illuminate/Mail/Message.html

Так что вы будете использовать это так:

$data = file_get_contents(...);
$message->attachData($data, $filename);

Это особенно полезно в тех случаях, когда вы сами динамически генерируете данные, например, в формате PDF.

Если вы просто извлекаете ранее существующий файл из URL, вы можете просто использовать стандартную attach() метод с URL, и пусть Swift Mailer извлекает его:

$message->attach("http://www.w3schools.com/html/html5.gif");
Другие вопросы по тегам