gpt4 book ai didi

php - 附件不使用 Laravel 邮件发送

转载 作者:行者123 更新时间:2023-12-05 05:14:59 27 4
gpt4 key购买 nike

我正在尝试使用 Laravel 发送电子邮件并将生成的 PDF 附加到电子邮件中。正在发送电子邮件,但未发送 pdf。

注意事项:使用 Larvel 5.5 版PHP 版本 >=7.0.0我用来生成 pdf 的库:https://github.com/niklasravnsborg/laravel-pdf

代码如下:

<?php

namespace Portal\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use niklasravnsborg\LaravelPdf\Facades\Pdf as PDF;

class PreApprovalEmail extends Mailable
{
use Queueable, SerializesModels;
public $name;

/**
* Create a new message instance.
*
* @return void
*/
public function __construct($name)
{
$this->name = $name;
}

/**
* Build the message.
*
* @return $this
*/
public function build()
{
$this->subject('Pre approval letter');

return $this->view('emails.emailTemplate')->attachData($this->createPDF(), 'generated.pdf', [
'mime' => 'application/pdf',
]);
}

public function createPDF()
{
$data = array(
// data
);

$pdf = PDF::loadView('emails.generatablePDF', $data);
return $pdf->stream('document.pdf');
}
}

这是我的 routes/web.php 文件中的路由:

Route::get('/samplemail', function () { 
Mail::to("<my_email>@protonmail.com")->send(new PreApprovalEmail("test"));
return view('emails.generatablePDF')
});

根据文档 ( https://laravel.com/docs/5.5/mail ) 我应该收到正确的电子邮件,包括附件。我收到了电子邮件,但没有收到附件。我该如何解决这个问题?

最佳答案

你能为你的 pdf 尝试 output 方法而不是流式传输它吗,因为流首先调用输出然后构建一个新的 http 响应:

    /**
* @return mixed
*/
public function build()
{
$this->subject('Pre approval letter');

return $this->view('emails.emailTemplate')
->attachData($this->createPDF(), 'generated.pdf');
}

/**
* @return mixed
*/
public function createPDF()
{
$data = [
// data
];

$pdf = PDF::loadView('emails.generatablePDF', $data);
return $pdf->output();
}

还要确保您的 pdf 输出是正确的,所以在将其附加到电子邮件之前执行 dd

关于php - 附件不使用 Laravel 邮件发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51999286/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com