附件有file_get_contents?

时间:2015-02-01 00:12:52

标签: email laravel laravel-4 attachment swiftmailer

我花了很长时间试图找出使用Lavarel 4发送电子邮件并包含邮件附件的任何案例。甚至没有人谈论它,每个人都从文件系统附加文件。

是否有人在发送附有图片的电子邮件(例如:http://www.w3schools.com/html/html5.gif)而没有实际将其下载到磁盘上的经验?

1 个答案:

答案 0 :(得分:5)

Swift Mailer绝对允许您使用Swift_Attachment::newInstance()附加数据:

http://swiftmailer.org/docs/messages.html#attaching-dynamic-content

看起来Laravel有一个包装器方法,它只是在主文档中没有提到。见这里:

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

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

所以你会像这样使用它:

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

这对于您自己动态生成数据的情况特别有用,例如PDF。

如果你只是从URL中提取一个预先存在的文件,你可以使用带有URL的标准attach()方法,并让Swift Mailer获取它:

$message->attach("http://www.w3schools.com/html/html5.gif");