You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过变量将后端本地图片传递到PHP Blade邮件模板并展示?

解决Laravel邮件模板中图片无法显示的问题

核心原因

邮件客户端无法直接访问服务器本地文件系统,所以不能用storage_path()、本地相对路径或未公开的文件路径来引用图片,必须通过邮件附件嵌入或公开可访问URL两种方式实现。

解决方案一:嵌入邮件附件(推荐,无需图片公开)

这种方式会把图片作为邮件的内嵌附件发送,兼容性最好,不受服务器访问限制。

  1. 修改邮件发送代码
    在Mail::send的闭包中,使用embed()方法将本地图片转为邮件识别的CID(内容ID),并传递给模板:

    if (count($fecha_nacimiento) > 0) {
        error_log(" lo envie");
        // 用use($directory)把外部变量传入闭包
        Mail::send('mails/cumple', compact('nombre_cumple'), function ($mail) use ($directory) {
            $mail->from('energiasolar@grupowattsolar.com');
            $mail->to('auxsistemas@grupowattsolar.com');
            $mail->subject("Feliz Cumpleaños!!!");
            $mail->headers = array(
                'From' => 'Departamento de Recursos Humanos'
            );
            // 生成图片的CID,public_path()拼接Laravel的public目录绝对路径
            $imageCid = $mail->embed(public_path($directory));
            // 将CID传递给模板
            $mail->with(['imageCid' => $imageCid]);
        });             
    }
    

    注意:如果你的$directory路径是coreui/public/img/brand/...,存在路径冗余,应改为相对于Laravel public目录的路径,比如coreui/img/brand/mpanesSolar.png(假设coreui是public下的子文件夹)。

  2. 修改Blade模板代码
    使用cid:前缀引用生成的CID:

    <img src="cid:{{ $imageCid }}" alt="Logo" height="50">
    

解决方案二:使用公开可访问URL(适用于生产环境)

如果图片已经部署到可公开访问的服务器(或开发环境用ngrok等工具映射本地端口),可以直接用asset()生成公开URL。

  1. 修正路径变量
    确保$directory是相对于Laravel public目录的路径,比如:

    // 去掉多余的coreui/public/,改为相对public的路径
    $directory='coreui/img/brand/mpanesSolar.png';
    
  2. Blade模板中引用
    使用asset()生成完整的公开URL:

    <img src="{{ asset($directory) }}" alt="Logo" height="50">
    

    注意:本地开发时,asset()生成的是http://localhost/...,邮件客户端无法访问,此时推荐用方案一。

你之前写法的问题分析

  • $directory->getPath():$directory是字符串变量,不是文件对象,调用方法会直接报错。
  • storage_path():生成的是服务器本地绝对路径(如/var/www/project/storage/...),邮件客户端无法访问这个路径。
  • src={{directory}}:缺少Blade变量语法(应该是{{ $directory }}),且即使修正,路径也是本地相对路径,邮件客户端无法识别。

内容的提问来源于stack exchange,提问作者Au Sistemas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 19:53:15