当前位置:首页 > CMS教程 > 其它CMS > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2023-06-27 13:02:27 浏览: 评论:0 

laravel自带SwiftMailer库,集成了多种邮件API,可以很方便的实现邮件的发送。在本教程中使用到的是SMTP(Simple Message Transfer Protocol)简单邮件传输协议,通常理解为邮件发送服务器。

配置

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

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

  1. 'mailers' => [ 
  2.         'smtp' => [ 
  3.             'transport' => 'smtp'
  4.             'host' => env('MAIL_HOST''smtp.mailgun.org'), 
  5.             'port' => env('MAIL_PORT', 587), 
  6.             'encryption' => env('MAIL_ENCRYPTION''tls'), 
  7.             'username' => env('MAIL_USERNAME'), 
  8.             'password' => env('MAIL_PASSWORD'), 
  9.             'timeout' => null, 
  10.             'local_domain' => env('MAIL_EHLO_DOMAIN'), 
  11.         ], 
  12.         ] 

生成 Mailables

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

php artisan make:mail OrderShipped

编写 Mailables

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

配置发件人

from 方法

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

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

配置视图

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

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

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

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

  1. /** 
  2.      * @var User 
  3.      */ 
  4.     public $user
  5.     /** 
  6.      * Create a new message instance. 
  7.      * 
  8.      * @return void 
  9.      */ 
  10.     public function __construct($user
  11.     { 
  12.         $this->user = $user
  13.     } 

在调用发送时

$user = User::all();

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

视图

<h2>测试邮箱发送</h2>

<p>{{$user[0]['email']}}</p>

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

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

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

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

视图

  1. <h2>测试邮箱发送</h2> 
  2. 名字:<p>{{$name}}</p> 
  3. 发送时间<p>{{$time}}</p> 
  4. 邮箱:<p>{{$user[0]['email']}}</p>

Tags: laravel发送邮件 PHP发送邮件

分享到: