Chr*_*ris 23 php laravel laravel-5 laravel-5.3
Laravel 5.3引入了一项名为notification的新服务,允许通过简单流畅的语法构建电子邮件(以及其他通知):
return (new MailMessage)
->greeting('Hello!')
->line('One of your invoices has been paid!')
->action('View Invoice', $url)
->line('Thank you for using our application!');
Run Code Online (Sandbox Code Playgroud)
将图像添加到电子邮件通知中的雄辩方法是什么?我已经发布了供应商文件来修改基本模板.
我的想法目前在于:
Illuminate\Notifications\Messages\SimpleMessage为一个新的局部类,沿着线SimpleMediaMessage与几个额外的方法(例如:->image(src, url, alt))SimpleMediaMessage通过构建的媒体阵列创建特定于该循环的模板->image这对于像电子邮件中的图像这样简单的事情来说似乎非常沉重.我错过了什么吗?有更好的方法吗?
编辑清晰
当我提到图像时,我指的是在消息本身中可见的横幅和轨迹图像(而不是单独的附件).
附图显示a)红色当前可以实现的目标,以及b)紫色我想要的东西.
第二次编辑
重新阅读到目前为止发布的答案,特别是@Erics,我看到通过对模板进行非常简单的修改,您实际上可以执行以下操作:
->line("<img src='foo.example/bar.jpg' />")
Run Code Online (Sandbox Code Playgroud)
需要修改模板以允许不安全的标记:
// Note this is in two spots - intro + outro
{{ $line }} --> becomes --> {!! $line !!}
Run Code Online (Sandbox Code Playgroud)
这种方法的缺点:
除非您在电子邮件模板之外执行此操作,否则图像无法利用内联样式,例如:
- > line("<img style ='max-width:570px;/*所有其他垃圾,使图片在电子邮件中看起来不错*/'src ='foo.example.bar.jpg'/>")
Eri*_*ric 12
你想怎么附上?在电子邮件中,您可以引用完整路径,只需将其以典型的HTML格式添加到视图中:
<img src="http://yoursite.com/path/to/image.png">
Run Code Online (Sandbox Code Playgroud)
如果你想使它成为一个真正的文件附件,那么MailMessage上既有一个->attach()和一个attachData方法.这些通常用于PDF或文档附件等内容.
如果你想在源代码中附加和引用附件,那么我猜你需要像你提到的那样扩展类或者回退到Laravel的Mail::send方法.
由于通知系统设计简单而且固执己见,我想他们想要涵盖常见的用例,使用完整的图像路径与参考cid: 样式相比要简单得多.
| 归档时间: |
|
| 查看次数: |
3711 次 |
| 最近记录: |