如何使用 Lumen 寄信 Lumen Mail example
由於 Lumen 沒有內建 Mail function
網路上找到整合 Mail 的方式大概有下面兩種
我實作的是第一種
第二種主要是把 Lumen 被拔掉的功能給加回來
因為不需要其他的功能
這邊的環境是 Lumen 5.5.2
1. 需要先安裝 illuminate/mail 套件
不過不能只安裝 illuminate/mail 會出錯,要把相依的套件一起裝起
這部分別篇文章有介紹不贅述,請參考這邊
2. 然後在 bootstrap/app.php 裡面加入這段
4. 在 config 資料夾中新增一個 mail.php 檔案
將下方的程式複製到 mail.php 中
網路上找到整合 Mail 的方式大概有下面兩種
我實作的是第一種
第二種主要是把 Lumen 被拔掉的功能給加回來
因為不需要其他的功能
這邊的環境是 Lumen 5.5.2
1. 需要先安裝 illuminate/mail 套件
不過不能只安裝 illuminate/mail 會出錯,要把相依的套件一起裝起
這部分別篇文章有介紹不贅述,請參考這邊
2. 然後在 bootstrap/app.php 裡面加入這段
$app->register(\Illuminate\Mail\MailServiceProvider::class);然後把這行前面註解移除
$app->withFacades();3. 安裝這個套件 phanan's cascading config
composer require phanan/cascading-config: "~2.0"把下面這兩行加入 bootstrap/app.php 裡面
$app->register(PhanAn\CascadingConfig\CascadingConfigServiceProvider::class);
$app->configure('mail');
4. 在 config 資料夾中新增一個 mail.php 檔案
將下方的程式複製到 mail.php 中
return array(這邊使用 gmail 信箱當範例,如果遇到認證問題請參考這邊設定
"driver" => "smtp",
"host" => "smtp.gmail.com",
"port" => 465,
"from" => array(
"address" => "account@gmail.com",
"name" => "Mailbox Name"
),
"username" => "account@gmail.com",
"password" => "XXXXXOOOOO",
"sendmail" => "/usr/sbin/sendmail -bs",
"pretend" => false,
"encryption" => "ssl"
);
以上已經完成環境設定部分
接下來有個簡單範例供參考
由於 Lumen 沒有 view 的部分
所以無法使用 Mail::send 方式寄送
純文字
use Illuminate\Support\Facades\Mail;Mail::raw('Body Message', function($message)
{
$message->to('someone gmail.com')->subject('Subject');
});
HTML 版
use Illuminate\Support\Facades\Mail;Mail::raw('', function($message)
{
$message->to('someone@gmail.com')->subject('Subject');
$message->setBody('
test12345678', 'text/html');
});
參考文件:
Lumen 5.3 send email
Lumen 5.4 with Laravel Mailable
Comments