首頁  >  文章  >  php框架  >  Laravel - 發送電子郵件

Laravel - 發送電子郵件

WBOY
WBOY原創
2024-08-27 10:50:20340瀏覽

Laravel 使用功能豐富的免費庫 SwiftMailer 來發送電子郵件。使用函式庫函數,我們可以輕鬆地發送電子郵件,而無需太多麻煩。電子郵件範本的載入方式與視圖相同,這表示您可以使用 Blade 語法並將資料注入到範本中。

下表顯示了send函數的語法和屬性 -

表>

在第三個參數中,$callback 閉包接收到訊息實例,透過該實例,我們也可以呼叫以下函數並更改訊息,如下所示。

  • $message → subject('歡迎來到教程點');
  • $message → from('email@example.com', '範例先生');
  • $message → to('email@example.com', '例先生');

一些不太常見的方法包括 -

  • $message → sender('email@example.com', '例先生');
  • $message → returnPath('email@example.com');
  • $message → cc('email@example.com', '例先生');
  • $message → bcc('email@example.com', '例先生');
  • $message→replyTo('email@example.com', '例先生');
  • $訊息 → 優先權(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 步 - 執行下列指令建立一個名為 Laravel - 發送電子郵件 的控制器。

php artisan make:controller Laravel - 發送電子郵件 --plain

步驟 4 − 成功執行後,您將收到以下輸出 −

Laravel - 發送電子郵件

第 5 步 - 將以下程式碼複製到

app/Http/Controllers/Laravel - 發送電子郵件.php 檔案。

app/Http/Controllers/Laravel - 發送電子郵件.php

<?php

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

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

class Laravel - 發送電子郵件 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','Laravel - 發送電子郵件@basic_email');
Route::get('sendhtmlemail','Laravel - 發送電子郵件@html_email');
Route::get('sendattachmentemail','Laravel - 發送電子郵件@attachment_email');

第 8 步 - 存取以下 URL 來測試基本電子郵件。

http://localhost:8000/sendbasicemail

步驟 9 - 輸出畫面將如下所示。檢查您的收件匣以查看基本的電子郵件輸出。

Basic Email Sent

第 10 步 - 存取以下 URL 來測試 HTML 電子郵件。

http://localhost:8000/sendhtmlemail

步驟 11 - 輸出畫面將如下所示。檢查您的收件匣以查看 html 電子郵件輸出。

HTML Email

第 12 步 - 存取以下 URL 來測試帶有附件的 HTML 電子郵件。

http://localhost:8000/sendattachmentemail

第 13 步 - 您可以看到以下輸出

Email Sent

注意 - 在Laravel - 發送電子郵件.php 文件中,from 方法中的電子郵件地址應該是您可以發送電子郵件地址的電子郵件地址。一般應該是你在伺服器上設定的郵件地址。

語法 void send(string|array $view, array $data, Closure|string $callback)
參數
  • Syntax void send(string|array $view, array $data, Closure|string $callback)
    Parameters
    • $view(string|array) − name of the view that contains email message

    • $data(array) − array of data to pass to view

    • $callback − a Closure callback which receives a message instance, allowing you to customize the recipients, subject, and other aspects of the mail message

    Returns nothing
    Description Sends email.
    $view(string|array) - 包含電子郵件的視圖名稱
  • $data(array) - 傳遞給視圖的資料數組
  • $callback - 接收訊息實例的閉包回調,讓您自訂郵件訊息的收件者、主題和其他方面
退貨 沒什麼
描述 發送電子郵件。

以上是Laravel - 發送電子郵件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:下一篇: