Вложение с 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");