[Mailtrapの公式サイト]
https://taupe.site/entry/mailtrap/
[参照]
https://qiita.com/ubonsa/items/5514fb9c5d5783bcc758
アカウント作成
https://mailtrap.io GithubアカウントでSign upできます。 開発用アカウントを集約できてありがたい。
認証情報の確認
「Demo inbox」を開くと接続情報が表示されます。
MAIL_DRIVER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=[ハッシュ値] MAIL_PASSWORD=[ハッシュ値] MAIL_FROM_ADDRESS=from@example.com MAIL_FROM_NAME=Example
そしてartisanコマンドで設定を反映。
$ php artisan config:cache
Mailableで実際に送信
- メールクラスもコマンドで簡単に生成。
$ php artisan make:mail TestMail Mail created successfully.
すると、app/Mail/TestMail.phpファイルが生成される。
コントローラ生成
$ php artisan make:controller TestMailController Controller created successfully.
エラー発生 1
Class 'App\Http\Controllers\Mail' not found
REQUEST_URI "/email/test"
エラー発生 2
Class 'Illuminate\Contracts\Mail' not found
エラー発生 3
[参照] https://reffect.co.jp/laravel/laravel-send-email
Class 'App\Http\Controllers\TestMail' not found
コード
app/Http/Controllers/TestMailController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; /** * 追加 (2行) */ // use Illuminate\Contracts\Mail; use Mail; use App\Mail\TestMail; class TestMailController extends Controller { public function send() { Mail::to('test@example.com') ->send(new TestMail()); } }
TestMail.php
<?php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; use Illuminate\Contracts\Queue\ShouldQueue; class TestMail extends Mailable { use Queueable, SerializesModels; /** * Create a new message instance. * * @return void */ public function __construct() { // } /** * Build the message. * * @return $this */ public function build() { return $this ->from('example@example.com') ->subject('テスト送信完了') ->view('email.test'); } }
Routing
/** * Email送受信テスト (SMTP, POP3) */ Route::get('/email/test', 'TestMailController@send')->name('email.send');