Laravel-メールの送信

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

次の表に、の構文と属性を示します。 send 関数-

構文 void send(string | array $ view、array $ data、Closure | string $ callback)
パラメーター
  • $ view(string | array)-電子メールメッセージを含むビューの名前

  • $ data(array)-表示に渡すデータの配列

  • $ callback-メッセージインスタンスを受信するクロージャコールバック。これにより、メールメッセージの受信者、件名、およびその他の側面をカスタマイズできます。

戻り値 何もない
説明 メールを送信します。

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

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

あまり一般的ではない方法には、次のものがあります。

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

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

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

構文

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

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

Step 1 − Gmailアカウントからメールを送信します。そのためには、Laravel環境ファイルでGmailアカウントを構成する必要があります。 - .envファイル。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

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

php artisan config:cache

Step 3 −というコントローラーを作成します MailController 次のコマンドを実行します。

php artisan make:controller MailController --plain

Step 4 −正常に実行されると、次の出力が表示されます−

Step 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.";
   }
}

Step 6 −次のコードをコピーします resources/views/mail.blade.php ファイル。

resources/views/mail.blade.php

<h1>Hi, {{ $name }}</h1>
l<p>Sending Mail from Laravel.</p>

Step 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');

Step 8 −次のURLにアクセスして、基本的な電子メールをテストします。

http://localhost:8000/sendbasicemail

Step 9−出力画面は次のようになります。受信トレイをチェックして、基本的な電子メール出力を確認してください。

Step 10 −次のURLにアクセスして、HTMLメールをテストします。

http://localhost:8000/sendhtmlemail

Step 11−出力画面は次のようになります。受信トレイをチェックして、HTMLメールの出力を確認してください。

Step 12 −次のURLにアクセスして、添付ファイル付きのHTMLメールをテストします。

http://localhost:8000/sendattachmentemail

Step 13 −次の出力を見ることができます

Note −で MailController.phpfromメソッドのファイルの電子メールアドレスは、電子メールアドレスを送信できる電子メールアドレスである必要があります。通常、これはサーバーで構成されている電子メールアドレスである必要があります。