再十天我就解脫了,是說突然的靈感用了下Seeder,好玩ヽ( ° ▽°)ノ
今天來寄信。
和之前資料庫連線很像,郵件在config
也有個設定檔mail.php
,可以直接改裡面的設定,或是去改Laravel的.env
。
'driver' => env('MAIL_DRIVER', 'smtp'),
Mail Driver設定,今天要用的是Gmail提供的SMTP server,所以維持預設的smtp
就好。
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
Host放的是SMTP Server的Address,改為smtp.gmail.com
。
'port' => env('MAIL_PORT', 587),
Port等等跟Encyption一起說。
'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
'name' => env('MAIL_FROM_NAME', 'Example'),
],
From是放郵件中的寄件人名稱跟寄件人信箱,要特別注意MAIL_FROM_ADDRESS
和MAIL_FROM_NAME
在.env
沒有參考內容(你是找不到這兩條的),看是要改mail.php
或是在環境設定檔增加這兩個。
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
Encryption是設定Email的加密協定,Gmail外寄郵件提供兩中協定,TLS跟SSL,TLS用的Port是587;SSL用的Port是465。
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
這兩個就是填你的gmail帳密啦ヽ( ° ▽°)ノ
特別提醒:
注意個人資訊安全,不要讓你的密碼在網路裸奔ヽ( ° ▽°)ノ
完成設定的部分,要到自己的Gmail上去找「允許安全性較低的應用程式」設定,啟用它。
現在來用Route測試看看能不能寄出去。
這是測試信件內文的View:
// email.blade.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<h2>{{ $title }}</h2>
<div>
<p>Hi, {{ $name }}.</p>
</div>
</body>
</html>
web.php
,對又它:
// web.php
Route::get('/send', function() {
$data = ['title' => 'Test', 'name' => 'PS'];
Mail::send('email', $data, function($message) {
$message->to('someone@gmail.com')->subject('This is a test email');
});
return 'The test email has been sent.';
});
subject()
是放主旨,如果信件寄送成功就會在畫面顯示「The test email has been sent.」,如下圖。
查看信箱就可以看到剛才寄出去的測試信了!(是的,我寄給我自己⋯⋯的另一隻帳號)
明天來整合ヽ( ° ▽°)ノ