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=用户名

配置成功后使用自带的重置密码功能试一试 。

image.png

再到邮箱里看下

image.png

咦英文的,汉化一下!

搜索下图片中这段文字在哪

You are receiving this email because we received a password reset request for your account.

image.png

嗯 打开 修改

image.png

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('如果你没有请求密码重置,请忽略此邮件。'));
    }

image.png

嗯还有几处没有汉化接着来。

使用命令

php artisan vendor:publish --tag=laravel-notifications

在文件夹生成邮件模板 位置如图

image.png

修改为(请保持原有结构否则会一团糟)下面是我修改好的文件

@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

image.png

完美!!!

Laravel 技术交流QQ群 852529151

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!