Я хочу сохранить электронную почту, а также отправить электронную почту пользователю в то же время в Laravel. как одновременно хранить данные? - PullRequest
0 голосов
/ 19 июня 2019
$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();

Ответы [ 2 ]

1 голос
/ 19 июня 2019

Вы должны использовать события Laravel Mail для сбора любых данных в базе данных.Это было бы общим местом для всех писем.Кроме того, он гарантирует, что вы будете срабатывать, когда почта находится в состоянии sending или sent.

Вот пример для сбора данных по отправленной электронной почте.

1.Создайте класс Listener с именем CaptureMailData Like:


<?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.
    }
}

2.Зарегистрируйте прослушиватель для получения события получения почты.

EventServiceProvider.php

protected $listen = [
    'Illuminate\Mail\Events\MessageSent' => [
        'App\Listeners\CaptureMailData'
    ]
];


Отправка дополнительных данных:

Если вы хотите отправитьДополнение данных для захвата.Вы можете использовать withSwiftMessage() для установки дополнительных данных с атрибутом сообщения.Как:

$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.
}

Вот ссылка для отправки дополнительных данных:

https://laracasts.com/discuss/channels/laravel/accessing-the-mailable-properties-from-the-messagesending-event-that-is-triggered-when-sending-mail-through-the-mail-facade

0 голосов
/ 19 июня 2019

проверить это как отправить письмо в laravel

это может помочь вам. во-вторых, чтобы сохранить электронную почту в базе данных, попробуйте это:

public function SendMail(Request $request)
{
    $email=$request->input('email');
    DB::table('table')->insert([

      'email'=>$email,

    ]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...