Laravel 5.3引入了一项名为notifications的新服务,允许通过简单流畅的语法构造电子邮件(以及其他通知):
return (new MailMessage)
->greeting('Hello!')
->line('One of your invoices has been paid!')
->action('View Invoice', $url)
->line('Thank you for using our application!');
将图像添加到电子邮件通知的有效方法是什么?我已经发布了供应商文件来修改基本模板。
我现在的想法是:
Illuminate\Notifications\Messages\SimpleMessage
扩展为一个新的本地类,与SimpleMediaMessage
类似,带有一些额外的方法(例如:注册基本模板(或创建一个特定于SimpleMediaMessage
的方法),该模板在通过->image
对于像电子邮件中的图像这样简单的事情,这似乎是相当重的一招。我是不是遗漏了什么?有没有更好的方法?
为clarity编辑的
当我提到图像时,我指的是在消息本身中可见的横幅和尾随图像(而不是作为单独的附件)。
所附图片显示了一)在红色什么目前可以实现,以及在紫色什么是我正在寻找。
第二次编辑
重新阅读到目前为止发布的答案,特别是@Erics,我看到只需对模板进行非常简单的修改,您实际上可以执行以下操作:
->line("<img src='foo.example/bar.jpg' />")
需要修改模板以允许不安全的标记:
// Note this is in two spots - intro + outro
{{ $line }} --> becomes --> {!! $line !!}
这种方法的缺点是:
->line(“< img style='max-width:570px;/*所有其他让图片在邮件中看起来没问题的垃圾邮件*/‘src='foo.example.bar.jpg’/> ")
发布于 2016-10-20 08:42:42
您希望如何附加?在电子邮件中,您可以引用完整路径,并将其以典型的HTML格式添加到视图中:
<img src="http://yoursite.com/path/to/image.png">
如果你想让它成为一个真正的文件附件,在MailMessage上有->attach()
和attachData
两种方法。它们通常用于PDF或文档附件之类的内容。
如果你想在源代码中附加和引用附件,那么我猜你需要像你提到的那样扩展这个类,或者退回到Laravel的Mail::send
方法。
由于通知系统被设计为简单和固执己见,我想他们想要涵盖常见的用例,并且使用图像的完整路径比引用cid:
style简单得多。
发布于 2021-07-01 20:14:16
正如您在Mail/resources/html/layout.blade.php
中看到的,Laravel使用Markdown表示法:
{{ Illuminate\Mail\Markdown::parse($slot) }}
因此,您可以使用如下代码使用line()
方法格式化插入图像:
->line('![your_text](https://image_address);
https://stackoverflow.com/questions/40128532
复制相似问题