lumen 에서 mail 사용
lumen 에서 laravel 의 mail library 를 설치해서 사용할 것이다.설치
c:\a\programming\php\lumen_project\src>composer require illuminate/mail Using version ^5.5 for illuminate/mail ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 - Installation request for illuminate/container (locked at v5.4.19) -> satisfiable by illuminate/container[v5.4.19]. - Conclusion: don't install illuminate/mail v5.5.0 - Conclusion: don't install illuminate/mail 5.5.x-dev - Can only install one of: illuminate/support[5.6.x-dev, v5.4.19]. - Can only install one of: illuminate/support[v5.4.19, 5.6.x-dev]. - Can only install one of: illuminate/support[5.6.x-dev, v5.4.19]. - illuminate/mail 5.6.x-dev requires illuminate/support 5.6.* -> satisfiable by illuminate/support[5.6.x-dev]. - Installation request for illuminate/mail ^5.5 -> satisfiable by illuminate/mail[5.5.x-dev, 5.6.x-dev, v5.5.0]. - Installation request for illuminate/support (locked at v5.4.19) -> satisfiable by illuminate/support[v5.4.19]. Installation failed, reverting ./composer.json to its original content.
현재(2017.08.31) illuminate/mail 의 버전은 5.5 인데, 이녀석은 lumen 5.4에서는 설치가 안됐다. 당연한 이야기 일 수 있지만, 같은 5.4 버전을 설치하면 된다.(여기 를 참고하자.)
composer require illuminate/mail:5.4.*
설정
아래 5가지를 설정해 주면 된다.
- <root>/bootstrap/app.php
- <root>/app/Providers/AppServiceProvider.php
- <root>/config/mail.php
- <root>/.env.env
- MyController.php
<root>/bootstrap/app.php
$app->register(App\Providers\AppServiceProvider::class);
<root>/app/Providers/AppServiceProvider.php
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Http\Request; class AppServiceProvider extends ServiceProvider { /** * Register any application services. * * @return void */ public function register() { ... } /** * Boot the authentication services for the application. * * @return void */ public function boot() { $this->app->configure('services'); $this->app->singleton('mailer', function ($app) { return $app->loadComponent('mail', 'Illuminate\Mail\MailServiceProvider', 'mailer'); }); $this->app->alias('mailer', \Illuminate\Contracts\Mail\Mailer::class); } }
<root>/config/mail.php
<?php return [ 'driver' => env('MAIL_DRIVER'), 'host' => env('MAIL_HOST'), 'port' => env('MAIL_PORT'), 'from' => [ 'address' => env('MAIL_FROM_ADDRESS'), 'name' => env('MAIL_FROM_NAME'), ], 'encryption' => env('MAIL_ENCRYPTION'), 'username' => env('MAIL_USERNAME'), 'password' => env('MAIL_PASSWORD'), 'markdown' => [ 'theme' => 'default', 'paths' => [ resource_path('views/vendor/mail'), ], ], ];
<root>/.env.env
MAIL_DRIVER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=*******@gmail.com MAIL_PASSWORD=********* MAIL_ENCRYPTION=tls
MyController.php
app('mailer')->raw('Raw string email', function($msg) { $msg->to(['gae@gmail.com']); $msg->from(['gae@uck.com']); });
댓글 없음:
댓글 쓰기