
- Laravel 教程
- Laravel - 首頁
- Laravel - 概述
- Laravel - 安裝
- Laravel - 應用結構
- Laravel - 配置
- Laravel - 路由
- Laravel - 中介軟體
- Laravel - 名稱空間
- Laravel - 控制器
- Laravel - 請求
- Laravel - Cookie
- Laravel - 響應
- Laravel - 檢視
- Laravel - Blade 模板
- Laravel - 重定向
- Laravel - 資料庫操作
- Laravel - 錯誤與日誌
- Laravel - 表單
- Laravel - 本地化
- Laravel - Session
- Laravel - 驗證
- Laravel - 檔案上傳
- Laravel - 傳送郵件
- Laravel - Ajax
- Laravel - 錯誤處理
- Laravel - 事件處理
- Laravel - Facades
- Laravel - Contracts
- Laravel - CSRF 保護
- Laravel - 身份驗證
- Laravel - 授權
- Laravel - Artisan 命令列工具
- Laravel - 加密
- Laravel - 雜湊
- 理解發布流程
- Laravel - 客人使用者許可權
- Laravel - Artisan 命令
- Laravel - 分頁自定義
- Laravel - Dump Server
- Laravel - Action URL
- Laravel 有用資源
- Laravel - 快速指南
- Laravel - 有用資源
- Laravel - 討論
Laravel - 傳送郵件
Laravel 使用功能豐富的免費庫SwiftMailer傳送電子郵件。使用庫函式,我們可以輕鬆地傳送電子郵件,無需太多麻煩。電子郵件模板的載入方式與檢視相同,這意味著您可以使用 Blade 語法並將資料注入到您的模板中。
下表顯示了send函式的語法和屬性:
語法 | void send(string|array $view, array $data, Closure|string $callback) |
引數 |
|
返回值 | 無 |
描述 | 傳送郵件。 |
在第三個引數中,$callback closure 收到郵件例項,並透過該例項,我們還可以呼叫以下函式並更改郵件,如下所示。
- $message → subject('歡迎來到 Tutorials Point');
- $message → from('email@example.com', 'Mr. Example');
- $message → to('email@example.com', 'Mr. Example');
一些不太常用的方法包括:
- $message → sender('email@example.com', 'Mr. Example');
- $message → returnPath('email@example.com');
- $message → cc('email@example.com', 'Mr. Example');
- $message → bcc('email@example.com', 'Mr. Example');
- $message → replyTo('email@example.com', 'Mr. Example');
- $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 帳戶中的兩步驗證,並建立一個特定於應用程式的密碼,然後更改 .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檔案後,執行以下兩個命令以清除快取並重新啟動 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('abc@gmail.com', 'Tutorials Point')->subject ('Laravel Basic Testing Mail'); $message->from('xyz@gmail.com','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('abc@gmail.com', 'Tutorials Point')->subject ('Laravel HTML Testing Mail'); $message->from('xyz@gmail.com','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('abc@gmail.com', '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('xyz@gmail.com','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 以測試基本電子郵件。
https://:8000/sendbasicemail
步驟 9 - 輸出螢幕將如下所示。檢查您的收件箱以檢視基本電子郵件輸出。

步驟 10 - 訪問以下 URL 以測試 HTML 電子郵件。
https://:8000/sendhtmlemail
步驟 11 - 輸出螢幕將如下所示。檢查您的收件箱以檢視 HTML 電子郵件輸出。

步驟 12 - 訪問以下 URL 以測試帶有附件的 HTML 電子郵件。
https://:8000/sendattachmentemail
步驟 13 - 您將看到以下輸出

注意 - 在MailController.php檔案中,from方法中的電子郵件地址應該是您可以傳送電子郵件的電子郵件地址。通常,它應該是您伺服器上配置的電子郵件地址。