Laravel-sending-email

提供:Dev Guides
移動先:案内検索

Laravel-メールの送信

Laravelは無料の機能豊富なライブラリ SwiftMailer を使用してメールを送信します。 ライブラリ関数を使用すると、あまり面倒なことなく簡単にメールを送信できます。 電子メールテンプレートはビューと同じ方法でロードされます。つまり、Blade構文を使用して、テンプレートにデータを挿入できます。

次の表は、*送信*関数の構文と属性を示しています-

Syntax void send(string
array $view, array $data, Closure string $callback)
Parameters
  • $ view(string
array)−電子メールメッセージを含むビューの名前 * $ data(array)-ビューに渡すデータの配列 * $ callback-メッセージインスタンスを受信するクロージャーコールバック。メールメッセージの受信者、件名、およびその他の側面をカスタマイズできます。 Returns
nothing Description

3番目の引数では、$ callbackクロージャーがメッセージインスタンスを受信し、そのインスタンスを使用して、次の関数を呼び出して、以下に示すようにメッセージを変更することもできます。

  • $ message→subject( 'チュートリアルポイントへようこそ');
  • $ message→from('[email protected] '、'ミスター 例 ');
  • $ message→to('[email protected] '、'ミスター 例 ');

あまり一般的ではない方法のいくつかが含まれます-

ファイルを添付または埋め込むには、次の方法を使用できます-

  • $ message→attach( 'path/to/attachment.txt');
  • $ message→embed( 'path/to/attachment.jpg');

メールはHTMLまたはテキストとして送信できます。 以下に示すように配列を渡すことにより、最初の引数で送信するメールのタイプを指定できます。 デフォルトのタイプはHTMLです。 プレーンテキストメールを送信する場合は、次の構文を使用します。

構文

Mail::send([‘text’=>’text.view’], $data, $callback);

この構文では、最初の引数は配列を取ります。 キーの値としてビューのキー名として text を使用します。

ステップ1 *-Gmailアカウントからメールを送信します。そのためには、Laravel環境ファイル-.env *ファイルでGmailアカウントを設定する必要があります。 Gmailアカウントで2段階認証を有効にし、アプリケーション固有のパスワードを作成してから、以下に示すように.envパラメーターを変更します。

.env

MAIL_DRIVER = smtp
MAIL_HOST = smtp.gmail.com
MAIL_PORT = 587
MAIL_USERNAME = your-gmail-username
MAIL_PASSWORD = your-application-specific-password
MAIL_ENCRYPTION = tls

ステップ2 *- *.env ファイルを変更した後、以下の2つのコマンドを実行してキャッシュをクリアし、Laravelサーバーを再起動します。

php artisan config:cache

ステップ3 *-次のコマンドを実行して、 *MailController というコントローラーを作成します。

php artisan make:controller MailController --plain
  • ステップ4 *-実行が成功すると、次の出力が表示されます-

MailController

  • ステップ5 *-次のコードをコピーします
*app/Http/Controllers/MailController.php* ファイル。
*app/Http/Controllers/MailController.php*
<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Mail;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class MailController extends Controller {
   public function basic_email() {
      $data = array('name'=>"Virat Gandhi");

      Mail::send(['text'=>'mail'], $data, function($message) {
         $message->to('[email protected]', 'Tutorials Point')->subject
            ('Laravel Basic Testing Mail');
         $message->from('[email protected]','Virat Gandhi');
      });
      echo "Basic Email Sent. Check your inbox.";
   }
   public function html_email() {
      $data = array('name'=>"Virat Gandhi");
      Mail::send('mail', $data, function($message) {
         $message->to('[email protected]', 'Tutorials Point')->subject
            ('Laravel HTML Testing Mail');
         $message->from('[email protected]','Virat Gandhi');
      });
      echo "HTML Email Sent. Check your inbox.";
   }
   public function attachment_email() {
      $data = array('name'=>"Virat Gandhi");
      Mail::send('mail', $data, function($message) {
         $message->to('[email protected]', 'Tutorials Point')->subject
            ('Laravel Testing Mail with Attachment');
         $message->attach('C:\laravel-master\laravel\public\uploads\image.png');
         $message->attach('C:\laravel-master\laravel\public\uploads\test.txt');
         $message->from('[email protected]','Virat Gandhi');
      });
      echo "Email Sent with attachment. Check your inbox.";
   }
}

ステップ6 *- *resources/views/mail.blade.php ファイルに次のコードをコピーします。

*resources/views/mail.blade.php*
<h1>Hi, {{ $name }}</h1>
l<p>Sending Mail from Laravel.</p>

ステップ7 *- app/Http/routes.php。*に次の行を追加します

*app/Http/routes.php*
Route::get('sendbasicemail','MailController@basic_email');
Route::get('sendhtmlemail','MailController@html_email');
Route::get('sendattachmentemail','MailController@attachment_email');
  • ステップ8 *-次のURLにアクセスして、基本的なメールをテストします。
http://localhost:8000/sendbasicemail
  • ステップ9 *-出力画面は次のようになります。 受信トレイをチェックして、基本的な電子メール出力を確認します。

送信された基本的なメール

  • ステップ10 *-次のURLにアクセスして、HTMLメールをテストします。
http://localhost:8000/sendhtmlemail
  • ステップ11 *-出力画面は次のようになります。 受信トレイをチェックして、HTMLメールの出力を確認します。

HTMLメール

  • ステップ12 *-次のURLにアクセスして、添付ファイル付きのHTMLメールをテストします。
http://localhost:8000/sendattachmentemail
  • ステップ13 *-次の出力を確認できます

メール送信

- MailController.php ファイルでは、fromメソッドの電子メールアドレスは、電子メールアドレスを送信できる電子メールアドレスである必要があります。 通常、サーバーで設定されたメールアドレスである必要があります。