参考
https://laravel.com/docs/5.1/mail追加するパッケージ
composer.jsonのrequireに以下のパッケージを追加してcomposer updateします。"illuminate/mail": "5.1.*", "aws/aws-sdk-php": "~3.0",
設定ファイルの追加
config/mail.phpとconfig/services.phpファイルの作成(デフォルト設定ファイルmail.phpをコピーする)// configディレクトリが無い場合は作成する cp vendor/laravel/lumen-framework/config/mail.php config/mail.php // services.phpは空ファイルを作成して設定値を自分で記述した touch config/services.php
config/mail.phpの修正
// デフォルト値をsesと書き換える。または環境変数MAIL_DRIVERを設定する driver' => env('MAIL_DRIVER', 'ses'),
config/services.php
awsで作成した値を設定します。<?php return [ 'ses' => [ 'key' => 'keyの値', 'secret' => 'secretの値', 'region' => 'リージョンの値', // e.g. us-east-1 ] ];
テンプレートの作成
// テンプレートファイルを作成 touch resource/views/emails/example.blade.phpテンプレートには、通常のviewと同様に変数を渡せます。
HTMLメールの送信
Mail::send('emails.example', ['user' => $user], function ($m) use ($user) { $m->from('hello@app.com', 'Your Application'); $m->to('メールアドレス', '名前')->subject('テストメールの件名'); });
テキストメールの送信
// テンプレートの値を配列にしてキーをtext、値にテンプレートのパスを指定する Mail::send(['text' => 'emails.example'], ['user' => $user], function ($m) use ($user) { $m->from('hello@app.com', 'Your Application'); $m->to('メールアドレス', '名前')->subject('テストメールの件名'); }); // 配列でhtmlメールを指定する場合 Mail::send(['html.view', 'text.view'], $data, $callback);
まとめ
Laravelのドキュメントを確認した限りでは、送信オプションもいろいろ網羅されているので細かい調整もできそうです。標準以上の機能が必要なケースはあまりないかもしれませんが、もっとカスタマイズが必要な場合は、コアのソースを確認して調査する必要がありそうです。
あと、Amazon SESはデフォルトで送信制限があるので、テスト用のメールアドレスはあらかじめSES側で設定とverify(メールアドレスの有効性の確認)しておく必要があります。制限解除済みであれば登録不要です。
0 件のコメント:
コメントを投稿