Laravel 邮件配置
使用版本 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 协议》,转载必须注明作者和本文链接