«

PHP怎么使用laravel邮件服务发送邮件

时间:2024-8-5 09:34     作者:韩俊     分类: PHP


今天小编给大家分享一下PHP怎么使用laravel邮件服务发送邮件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

配置

Laravel 的邮件服务可以通过 config/mail.php 配置文件进行配置。

邮件中的每一项都在配置文件中有单独的配置项,甚至是独有的「传输方式」,允许你的应用使用不同的邮件服务发送邮件

'mailers' => [
        'smtp' => [
            'transport' => 'smtp',
            'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
            'port' => env('MAIL_PORT', 587),
            'encryption' => env('MAIL_ENCRYPTION', 'tls'),
            'username' => env('MAIL_USERNAME'),
            'password' => env('MAIL_PASSWORD'),
            'timeout' => null,
            'local_domain' => env('MAIL_EHLO_DOMAIN'),
        ],
        ]

生成 Mailables

在构建 Laravel 应用程序时,应用程序发送的每种类型的电子邮件都表示为一个 mailable 类。 这些类存储在 app/Mail 目录中

php artisan make:mail OrderShipped

编写 Mailables

所有可邮寄类的配置都是在 build 方法中完成的。 在此方法中,可以调用各种方法,例如 from、subject、view 和 attach 来配置电子邮件的呈现和传递。

配置发件人

from 方法

首先,让我们浏览一下邮件的发件人的配置。或者,换句话说,邮件来自谁。有两种方法配置发件人。第一种,你可以在 mailable 类的 build 方法中使用 from 方法:

 public function build()
    {
        return $this->from(env('MAIL_USERNAME'),env('MAIL_FROM_ADDRESS'))
        ->view('emails.shipped');
    }

配置视图

可以在 mailable 类的 build 方法中使用 view 方法来指定在渲染邮件内容时要使用的模板。由于每封邮件通常使用 Blade 模板 来渲染其内容,因此在构建邮件 HTML 内容时你可以使用 Blade 模板引擎提供的所有功能及享受其带来的便利性

邮件模板一般存放于resources/views/emails下面

还可以配置视图变量,直接在视图模板中使用

在Mailables类中的构造方法中可以配置视图数据

/**
     * @var User
     */
    public $user;
    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($user)
    {
        $this->user = $user;
    }

在调用发送时

$user = User::all();
Mail::to('xxx@qq.com')->send(new OrderShipped($user));

视图

<h3>测试邮箱发送</h3>
<p>{{$user[0]['email']}}</p>

好的,到这一步就可以发送成功了

其实还可以使用with使用变量

 public function build()
    {
        return $this->from(env('MAIL_USERNAME'),env('MAIL_FROM_ADDRESS'))
            ->with([
                'name' => '测试变量',
                'time' => date('Y-m-d H:i:s')
            ])
            ->view('emails.shipped');
    }

视图

<h3>测试邮箱发送</h3>
名字:<p>{{$name}}</p>
发送时间<p>{{$time}}</p>
邮箱:<p>{{$user[0]['email']}}</p>

标签: php php教程

热门推荐