Mysql
 sql >> Base de données >  >> RDS >> Mysql

Configuration de messagerie dynamique avec des valeurs de la base de données [Laravel]

J'ai lutté pendant 3 jours avec ce problème, j'ai finalement trouvé un moyen de le résoudre.

J'ai d'abord créé une table mails et je l'ai rempli avec mes valeurs. Ensuite, j'ai créé un fournisseur MailConfigServiceProvider.php

<?php

namespace App\Providers;

use Config;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\ServiceProvider;

class MailConfigServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap the application services.
     *
     * @return void
     */
    public function boot()
    {
        //
    }

    /**
     * Register the application services.
     *
     * @return void
     */
    public function register()
    {
        if (\Schema::hasTable('mails')) {
            $mail = DB::table('mails')->first();
            if ($mail) //checking if table is not empty
            {
                $config = array(
                    'driver'     => $mail->driver,
                    'host'       => $mail->host,
                    'port'       => $mail->port,
                    'from'       => array('address' => $mail->from_address, 'name' => $mail->from_name),
                    'encryption' => $mail->encryption,
                    'username'   => $mail->username,
                    'password'   => $mail->password,
                    'sendmail'   => '/usr/sbin/sendmail -bs',
                    'pretend'    => false,
                );
                Config::set('mail', $config);
            }
        }
    }
}

Et puis enregistré dans le config\app.php

App\Providers\MailConfigServiceProvider::class,