我使用Laravel创建了一个应用程序并将其上传到实时服务器(shared hosting
)。我对其进行了编程,以便将电子邮件与通过DOMPDF
生成的电子邮件附件一起发送给客户。问题是我在Gmail收件箱中收到有关附件的网上诱骗错误。当我从附件中删除图片时,错误消失。好像我没有在刀片文件中正确插入图像。请帮助我如何通过控制器添加图像,然后将其解析到视图(作为附件发送)?
〜问候
加载PDF文件的PDF控制器
class PDFController extends Controller
{
//Loads the PDF document
public function getPDF(){
$pdf = \PDF::loadView('pdf.customer', ['format' => 'A5-L']);
return $pdf->stream('customer.pdf')->header('Content-Type','application/pdf');
}
}
电子邮件刀片
<div class="logo pull-right">
<?php $image_path = '/img/logo.png'; ?>
<a href='#'> <img src="{{ public_path().$image_path }}" alt="logo"> </a>
</div>
发送电子邮件的PagesController
$pdf = PDF::loadView('pdf.customer', $data);
Mail::send('emails.feedback', $data, function($message) use ($data, $pdf){
$message->from('info@*************');
$message->to($data['email']);
$message->subject('Feedback');
//Attach output from PDF doc, customer.pdf is the name of the file attached
$message->attachData($pdf->output(),'customer.pdf');
});
答案 0 :(得分:0)
如果您正在使用Laravel内置邮件程序,请按照以下结构
使用
的克里特邮件类php artisan make:mail MailFileName
MailFileName.php
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class MailFileName extends Mailable
{
use Queueable, SerializesModels;
public $data;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($data)
{
$this->data = $data;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->from('from_email' ,'Title')->view('emails.email_ blade_file')->with(['data' => $this->data])->subject($subject)->attach($this->data['attachment_url']);
}
}
在视图中,您传递的是$ data变量,因此您可以像使用普通刀片文件一样使用所有这些变量。
View File - resource/views/emails/email_ blade_file.blade.php
在您想要呼叫邮件功能添加的控制器中,
SomeController.php
使用App \ Mail \ MailFileName;
内幕功能,
$data['subject'] = 'New message from';
$data['data'] = ['your data'];
Mail::to($to_email)->send(new MailFileName($data));