Laravel - 發送電子郵件

傳介

你好,未來的 Laravel 大師!今天,我們將進入使用 Laravel 發送電子郵件的精彩世界。作為你鄰居的電腦科學老師,我在這裡指導你一步步走過這個旅程。如果你從未寫過一行代碼也不用擔心——我們會從最基本的開始,然後逐步學習。在這個教學結束時,你將能像專業人士一樣發送電子郵件!

Laravel - Sending Email

Laravel 是什麼?

在我們跳進發送電子郵件的話題之前,讓我們先來了解 Laravel 是什麼。Laravel 是一個強大的 PHP 框架,讓網頁開發變得輕鬆。把它想像成一個裝滿了所有建造驚人網站和網絡應用程序所需酷炫小工具的工具箱。它就像是網頁開發的瑞士軍刀!

為什麼要使用 Laravel 發送電子郵件?

你可能會想,"我們為什麼需要從我們的網絡應用程序發送電子郵件?" 好吧,想像你正在經營一家線上商店。你會想要發送訂單確認、運送更新,甚至可能是給客戶的生日折扣。這就是 Laravel 的電子郵件功能派上用場的地方!

為電子郵件設置 Laravel

步驟 1:配置

首先,我們需要告訴 Laravel 如何發送電子郵件。打開你的 .env 文件(這就像是你的 Laravel 應用程序的秘密日記)並添加以下行:

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=tls

your_usernameyour_password 替換為你的實際憑證。對於測試,我建議使用 Mailtrap——它就像是電子郵件的沙盒!

步驟 2:創建一個 Mailable

現在,讓我們創建我們的第一個 Mailable。你會問 Mailable 是什麼?它就像是你的電子郵件的藍圖。在終端中運行以下命令:

php artisan make:mail WelcomeMail

這將在 app/Mail/WelcomeMail.php 中創建一個新文件。讓我們打開它並添加一些內容:

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class WelcomeMail extends Mailable
{
use Queueable, SerializesModels;

public function __construct()
{
//
}

public function build()
{
return $this->view('emails.welcome');
}
}

這告訴 Laravel 使用 emails 文件夾中的 welcome 觀圖為我們的電子郵件內容。

步驟 3:創建電子郵件視圖

讓我們創建那個視圖!在 resources/views/emails/welcome.blade.php 創建一個新文件並添加一些 HTML:

<!DOCTYPE html>
<html>
<head>
<title>歡迎來到我們的應用程序!</title>
</head>
<body>
<h1>歡迎加入!</h1>
<p>我們非常高興你能夠加入我們。準備好迎接一段驚人的旅程吧!</p>
</body>
</html>

發送你的第一封電子郵件

現在來到令人興奮的部分——真正地發送電子郵件!讓我們創建一個控制器來處理這個。運行:

php artisan make:controller MailController

打開新的控制器文件並添加以下方法:

<?php

namespace App\Http\Controllers;

use App\Mail\WelcomeMail;
use Illuminate\Support\Facades\Mail;

class MailController extends Controller
{
public function sendWelcomeEmail()
{
Mail::to('[email protected]')->send(new WelcomeMail());
return '電子郵件發送成功!';
}
}

這個方法做了兩件事:

  1. 它告訴 Laravel 將我們的 WelcomeMail 發送到 '[email protected]'。
  2. 它返回一個成功消息。

測試你的電子郵件

為了測試這個,在你的 routes/web.php 文件中添加一個新路由:

Route::get('/send-welcome-email', [MailController::class, 'sendWelcomeEmail']);

現在,當你訪問你的瀏覽器中的 /send-welcome-email 時,它應該會觸發電子郵件的發送過程!

高級電子郵件功能

一旦你掌握了基礎知識,Laravel 提供了一些酷炫的高級電子郵件功能:

功能 描述
附件 將文件添加到你的電子郵件中
队列 在背景發送電子郵件
Markdown 使用 Markdown 寫你的電子郵件
本地化 用不同的語言發送電子郵件

讓我們看看如何添加一個附件:

public function build()
{
return $this->view('emails.welcome')
->attach(public_path('/files/terms.pdf'), [
'as' => 'terms.pdf',
'mime' => 'application/pdf',
]);
}

這將一個 PDF 文件附加到你的電子郵件中。酷炫吧?

結論

恭喜你!你剛剛學會了如何使用 Laravel 發送電子郵件。記住,熟能生巧,所以不要害怕嘗試不同的電子郵件設計和功能。誰知道?你可能會創造出下一個大型的電子郵件營銷平台!

記住,在編程世界中,錯誤只是學習的機會。所以如果第一次沒有成功,深呼吸,除錯,然後再試一次。你可以的!

快樂編程,願你的電子郵件總能達到目的地!

Credits: Image by storyset