使用版本 Laravel 5.7
預設配置檔案在 根目錄下面的 .evn
檔案
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
但是即使這幾個值正確配置了還有可能發不出休息 因為 釋出使用者和使用者名稱不同。
錯誤提示為 授權錯誤
Expected response code 250 but got code "530", with message "530 5.7.1 Authentication required
完整的配置為(以騰訊企業郵箱為例)
MAIL_DRIVER=smtp
MAIL_HOST=smtp.exmail.qq.com
MAIL_PORT=465
MAIL_USERNAME=使用者名稱
MAIL_PASSWORD=密碼
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=使用者名稱
MAIL_FROM_NAME=使用者名稱
配置成功後使用自帶的重置密碼功能試一試 。
再到郵箱裡看下
咦英文的,漢化一下!
搜尋下圖片中這段文字在哪
You are receiving this email because we received a password reset request for your account.
嗯 開啟 修改
public function toMail($notifiable)
{
if (static::$toMailCallback) {
return call_user_func(static::$toMailCallback, $notifiable, $this->token);
}
return (new MailMessage)
->subject(Lang::getFromJson('重置密碼通知'))
->line(Lang::getFromJson('你收到這封郵件,因為我們收到了密碼重置請求您的帳戶。'))
->action(Lang::getFromJson('重置密碼'), url(config('app.url').route('password.reset', $this->token, false)))
->line(Lang::getFromJson('重置密碼連結有效期 :count 分鐘。', ['count' => config('auth.passwords.users.expire')]))
->line(Lang::getFromJson('如果你沒有請求密碼重置,請忽略此郵件。'));
}
嗯還有幾處沒有漢化接著來。
使用命令
php artisan vendor:publish --tag=laravel-notifications
在資料夾生成郵件模板 位置如圖
修改為(請保持原有結構否則會一團糟)下面是我修改好的檔案
@component('mail::message')
{{-- Greeting --}}
@if (! empty($greeting))
# {{ $greeting }}
@else
@if ($level === 'error')
# @lang('Whoops!')
@else
您好
@endif
@endif
{{-- Intro Lines --}}
@foreach ($introLines as $line)
{{ $line }}
@endforeach
{{-- Action Button --}}
@isset($actionText)
<?php
switch ($level) {
case 'success':
case 'error':
$color = $level;
break;
default:
$color = 'primary';
}
?>
@component('mail::button', ['url' => $actionUrl, 'color' => $color])
{{ $actionText }}
@endcomponent
@endisset
{{-- Outro Lines --}}
@foreach ($outroLines as $line)
{{ $line }}
@endforeach
{{-- Salutation --}}
@if (! empty($salutation))
{{ $salutation }}
@else
敬禮,<br>{{ config('app.name') }}
@endif
{{-- Subcopy --}}
@isset($actionText)
@component('mail::subcopy')
@lang(
"如果您無法點選 \":actionText\" 按鈕, 複製下面的連結。\n".
'從您的瀏覽器開啟: [:actionURL](:actionURL)',
[
'actionText' => $actionText,
'actionURL' => $actionUrl,
]
)
@endcomponent
@endisset
@endcomponent
完美!!!
Laravel 技術交流QQ群 852529151
本作品採用《CC 協議》,轉載必須註明作者和本文連結