$data= Input::except('_token');
if($data) {
\Illuminate\Support\Facades\Mail::send('email.sendemail', ['data' => $data], function ($m)
{
$m->from(config('app.email') );
$m->to( 'dsh@fads.com')
->subject('Ete');
Session::flash('flash_success', 'Email sent Successfully!');
});
}
else
{
Session::flash('flash_warning', 'Error in process!!');
}
return redirect()->back();
答案 0 :(得分:1)
您必须使用Laravel Mail事件来捕获数据库中的任何类型的数据。这将是所有邮件的通用位置。此外,它还可以确保您在邮件处于sending
状态或sent
时触发。
这里是捕获发送的电子邮件中数据的示例。
CaptureMailData
的侦听器类,例如:
<?php
namespace App\Listeners;
Illuminate\Mail\Events\MessageSent;
class CaptureMailData
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Handle the event.
*
* @param \Illuminate\Mail\Events\MessageSent $event
* @return void
*/
public function handle(MessageSent $event)
{
// Log the message
Log::info($event->message);
// Add your save functionality here.
}
}
EventServiceProvider.php
protected $listen = [
'Illuminate\Mail\Events\MessageSent' => [
'App\Listeners\CaptureMailData'
]
];
如果您要发送附加数据以捕获。您可以使用withSwiftMessage()
来设置带有message属性的其他数据。喜欢:
$user = User::first(); //any kind of data.
$this->withSwiftMessage(function ($message) use ($user) {
$message->user = $user;
});
并且可以通过以下方式访问CaptureMailData
侦听器内的其他数据:
public function handle(MessageSending $mailEvent)
{
$user = $mailEvent->message->user;
Log::info($user); // just to log.
}
以下是发送其他数据的链接:
答案 1 :(得分:0)
签出此how to send email in laravel
这可能对您有所帮助。其次,要将电子邮件保存在数据库中,请尝试以下操作:
public function SendMail(Request $request)
{
$email=$request->input('email');
DB::table('table')->insert([
'email'=>$email,
]);
}