首页 > 解决方案 > 使用 Laravel 发送附件电子邮件

问题描述

我正在尝试使用 Laravel 函数 Mail 发送附件,但它不起作用,它显示下一个错误:

传递给 Swift_Mime_SimpleMessage::attach() 的参数 1 必须实现接口 Swift_Mime_MimeEntity,给定字符串,在第 640 行的 /home/jysparki/public_html/app/Http/Controllers/BillController.php 中调用并定义

我的代码是这个:

  $email = Email::find(22);

    $body = $email->email;

    $client = Our_Client::find($invoice_history->id_client);

    $search  = array('$client_name', '$folio', '$amount', '$bill_date');
    $replace = array($client->client, $invoice_history->folio, $invoice_history->amount, Helper::fixdate($invoice_history->bill_date));

    $body = str_replace($search, $replace, $body);


    $search  = array('$folio');
    $replace = array($invoice_history->folio);

    $subject = $email->subject;

    $subject = str_replace($search, $replace, $subject);

    $data = array( 'email' => 'rodrigocabezas@jisparking.cl', 'subject' => $subject, 'body' => $body , 'file' => $file_url);

    Mail::send([], $data, function ($message) use ($data) {
      $message->to($data['email'])
        ->subject($data['subject'])
        ->setBody($data['body'], 'text/html') // for HTML rich messages
        ->attach($data['file'], ['as' => 'Your_Invoice.pdf', 'mime' => 'application/pdf']);
    });

你怎么能看到我在这里传递文件:

  ->attach($data['file'], ['as' => 'Your_Invoice.pdf', 'mime' => 'application/pdf']);

这个 $data['file'] 包含文件的 url,我对其进行了测试,它可以在你的浏览器中显示你的文件。

问题可能是什么?

谢谢

标签: laravelemail

解决方案


推荐阅读