【问题标题】:How to embed inline image in email using Laravel 5.8如何使用 Laravel 5.8 在电子邮件中嵌入内联图像
【发布时间】:2019-12-14 00:09:41
【问题描述】:

我正在尝试将徽标作为图像嵌入电子邮件中。

当我使用<img src="{{ $message->embed($pathToImage) }}"> 函数时出现错误

无法打开文件进行读取 [https://roadshow.test/storage/img/Email/Image_1_3a24d02162cb4c38a9c97009d527d53c.png]

电子邮件生成器如下所示:

return $this->subject("Event - {$subjectDate}")
                    ->view('emails.index')
                    ->with(['pathToImage' => url('/storage/img/Email/Image_1_3a24d02162cb4c38a9c97009d527d53c.png')]);

如果我在我的视图中使用url('....') 函数,图片正在加载,我可以毫无问题地看到它。

我还尝试使用 Laravel public_path('/img/Email/Image_1_3a24d02162cb4c38a9c97009d527d53c.png') 助手获取图像。但这不起作用,虽然我使用 php artisan 命令将存储与公用文件夹链接起来。

我的文件系统配置:

'local' => [
    'driver' => 'local',
    'root' => storage_path('app'),
],

'public' => [
    'driver' => 'local',
    'root' => storage_path('app/public'),
    'url' => env('APP_URL').'/storage',
    'visibility' => 'public',
 ],

而且我不使用电子邮件降价。环境设置在宅基地上。我所有的文件都在上传的"/home/vagrant/code/roadshow/storage/img/Email/Image_1_3a24d02162cb4c38a9c97009d527d53c.png" 文件夹中。

我在 Windows 10 上运行宅基地,这是 Windows 中的路径

【问题讨论】:

  • 您是否使用symlink 命令在您的storagepublic 文件夹之间创建符号链接?
  • 是的,我在我的问题中提到了它。我用这个命令php artisan storage:link
  • 我读过那部分,我的错!
  • 您必须将存储路径传递给它,而不是 url 或公共路径。您可以为此使用 storage_path 帮助程序。 laravel.com/docs/5.8/helpers#method-storage-path如果您需要更多帮助,请提供该文件在项目中的位置。
  • 我已经更新了我的问题。

标签: php laravel


【解决方案1】:

在您的电子邮件生成器中,path 而非 link 的属性提示名称。 尝试使用直接路径,因为您将图像嵌入到邮件正文中。

return $this->subject("Event - {$subjectDate}")
                ->view('emails.index')
                ->with(['pathToImage' => storage_path('app/public/img/Email/Image_1_3a24d02162cb4c38a9c97009d527d53c.png')]);

【讨论】:

  • 不幸的是,我在使用 storage_path('img/Email/Image_1_3a24d02162cb4c38a9c97009d527d53c.png') 时遇到了同样的错误。
  • @GregOstry 从您的安装文件夹开始,有问题的文件到底在哪里?例如,我猜它在/var/www/installation/storage/img/Email/Image_1_3a24d02162cb4c38a9c97009d527d53c.png
  • 这是典型的 laravel 在宅基地上的安装:"/home/vagrant/code/<Project>",这是项目安装中图像的完整路径:"roadshow/storage/img/Email/Image_1_3a24d02162cb4c38a9c97009d527d53c.png" 当我死去并转储到storage_path('...') 时我明白了路径:"/home/vagrant/code/roadshow/storage/img/Email/Image_1_3a24d02162cb4c38a9c97009d527d53c.png"
  • @GregOstry 我已经编辑了我的答案,你现在可以试试吗?
猜你喜欢
  • 1970-01-01
  • 2013-08-06
  • 2019-05-20
  • 2020-09-12
  • 1970-01-01
  • 2018-12-24
  • 2014-08-19
  • 1970-01-01
相关资源
最近更新 更多