gpt4 book ai didi

php - 如何使用 Laravel 将附件文件发送到电子邮件

转载 作者:行者123 更新时间:2023-12-03 22:50:17 26 4
gpt4 key购买 nike

Controller :

public function sendemail(Request $request)
{
$data = array(
'name'=> $request->name,
'email'=> $request->email,
'text'=> $request->text,
'category'=> $request->category,
'company'=> $request->company,
'number'=> $request->number
);

\Mail::send('AltHr/Portal/supportemail', $data, function ($message) use($data){

$message->from($data['email'], $data['name']);
$message->to('ra7veer@gmail.com')->subject($data['company'] . ' - ' .$data['category']);

$message->attach($request->file('files')->getRealPath(), [
'as' => $request->file('files')->getClientOriginalName(),
'mime' => $request->file('files')->getMimeType()
]);

});

return view('AltHr.Portal.support');
}

刀刃:

<div class="form-group form-group-default">
<label>Attachment</label>
<input type="file" name="files[]" accept="file_extension|image/*|media_type" multiple>
</div>

我尝试做一个简单的联系表格发送到我的电子邮件。目前它可以发送该电子邮件但没有附件。所以我尝试为附件编写代码,但它似乎不起作用,我收到错误:

Undefined variable: request


我在这里做错了什么?

最佳答案

您的 $request变量未定义,因为 $request变量在您需要在下面传递的函数内不可用

\Mail::send('AltHr/Portal/supportemail', compact('data'), function ($message) use($data, $request){ ....   });

在表单标签中添加 attr enctype="multipart/form-data"
<form role="form" action="{{action('AltHr\Portal\PortalController@sendemail')}}" method="post" class="m-t-15" enctype="multipart/form-data">
....
</form>

在您的 sendemail() method 中试试这个代码
$data = array(
'name'=> $request->name,
'email'=> $request->email,
'text'=> $request->text,
'category'=> $request->category,
'company'=> $request->company,
'number'=> $request->number
);
$files = $request->file('files');
\Mail::send('AltHr/Portal/supportemail', compact('data'), function ($message) use($data, $files){
$message->from($data['email']);
$message->to('nuru7495@gmail.com')->subject($data['company'] . ' - ' .$data['category']);

if(count($files > 0)) {
foreach($files as $file) {
$message->attach($file->getRealPath(), array(
'as' => $file->getClientOriginalName(), // If you want you can chnage original name to custom name
'mime' => $file->getMimeType())
);
}
}
});

关于php - 如何使用 Laravel 将附件文件发送到电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47051151/

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