Laravel-sending-email
Laravel-メールの送信
Laravelは無料の機能豊富なライブラリ SwiftMailer を使用してメールを送信します。 ライブラリ関数を使用すると、あまり面倒なことなく簡単にメールを送信できます。 電子メールテンプレートはビューと同じ方法でロードされます。つまり、Blade構文を使用して、テンプレートにデータを挿入できます。
次の表は、*送信*関数の構文と属性を示しています-
Syntax | void send(string |
array $view, array $data, Closure | string $callback) |
Parameters |
|
array)−電子メールメッセージを含むビューの名前 * $ data(array)-ビューに渡すデータの配列 * $ callback-メッセージインスタンスを受信するクロージャーコールバック。メールメッセージの受信者、件名、およびその他の側面をカスタマイズできます。 | Returns |
nothing | Description |
3番目の引数では、$ callbackクロージャーがメッセージインスタンスを受信し、そのインスタンスを使用して、次の関数を呼び出して、以下に示すようにメッセージを変更することもできます。
- $ message→subject( 'チュートリアルポイントへようこそ');
- $ message→from('[email protected] '、'ミスター 例 ');
- $ message→to('[email protected] '、'ミスター 例 ');
あまり一般的ではない方法のいくつかが含まれます-
- $ message→sender('[email protected] '、' Mr. 例 ');
- $ message→returnPath('[email protected] ');
- $ message→cc('[email protected] '、'ミスター 例 ');
- $ message→bcc('[email protected] '、'ミスター 例 ');
- $ message→replyTo('[email protected] '、'ミスター 例 ');
- $ message→priority(2);
ファイルを添付または埋め込むには、次の方法を使用できます-
- $ 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 *-実行が成功すると、次の出力が表示されます-
- ステップ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メールの出力を確認します。
- ステップ12 *-次のURLにアクセスして、添付ファイル付きのHTMLメールをテストします。
http://localhost:8000/sendattachmentemail
- ステップ13 *-次の出力を確認できます
注- MailController.php ファイルでは、fromメソッドの電子メールアドレスは、電子メールアドレスを送信できる電子メールアドレスである必要があります。 通常、サーバーで設定されたメールアドレスである必要があります。