Laravel 发送电子邮件

Laravel 发送电子邮件

Laravel使用免费且功能丰富的库 SwiftMailer 来发送电子邮件。使用该库的函数,我们可以轻而易举地发送电子邮件,不需要太多麻烦。电子邮件模板与视图加载方式相同,这意味着您可以使用Blade语法并将数据注入到模板中。

以下表格显示了 发送 函数的语法和属性−

语法 void send(string|array view, arraydata, Closure|string $callback)
参数 $view(string|array) − 包含电子邮件消息的视图名称
$data(array) − 要传递给视图的数据数组
$callback − Closure回调函数,接收一个message实例,允许您自定义邮件消息的收件人、主题和其他方面
返回值
描述 发送邮件。

在第三个参数中,$callback闭包接收消息实例,并且我们可以使用该实例调用以下函数并修改消息,如下所示。

  • $message → subject(‘欢迎来到教程点’);
  • $message → from(’email@example.com’, ‘Example先生’);
  • $message → to(’email@example.com’, ‘Example先生’);

一些较少常用的方法包括−

  • $message → sender(’email@example.com’, ‘Example先生’);
  • $message → returnPath(’email@example.com’);
  • $message → cc(’email@example.com’, ‘Example先生’);
  • $message → bcc(’email@example.com’, ‘Example先生’);
  • $message → replyTo(’email@example.com’, ‘Example先生’);
  • $message → priority(2);

要附加或嵌入文件,可以使用以下方法−

  • $message → attach(‘path/to/attachment.txt’);
  • $message → embed(‘path/to/attachment.jpg’);

邮件可以以HTML或文本形式发送。您可以通过以数组形式传递参数的方式指示要发送的邮件类型。默认类型为HTML。如果您想发送纯文本邮件,则可以使用以下语法。

语法

Mail::send([‘text’=>’text.view’], data,callback);

在这个语法中,第一个参数接受一个数组。使用 text 作为键名,将视图的值作为键的值。

示例

步骤1 - 现在我们将从Gmail账户发送一封电子邮件,为此您需要在Laravel环境文件 .env 中配置您的Gmail账户。在您的Gmail账户中启用两步验证,并创建一个特定于应用程序的密码,然后按照下面所示更改.env参数。

.env

MAIL_DRIVER = smtp
MAIL_HOST = smtp.gmail.com
MAIL_PORT = 587
MAIL_USERNAME = your-gmail-username
MAIL_PASSWORD = your-application-specific-password
MAIL_ENCRYPTION = tls

步骤2 - 在更改 .env 文件后,执行以下两个命令来清除缓存并重新启动Laravel服务器。

php artisan config:cache

步骤3 - 通过执行以下命令创建一个名为 MailController 的控制器。

php artisan make:controller MailController --plain

步骤4 − 执行成功后,您将收到以下输出 −

Laravel 发送电子邮件

步骤5 − 将以下代码复制到

app/Http/Controllers/MailController.php 文件中。

app/Http/Controllers/MailController.php

<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Mail;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class MailController extends Controller {
   public function basic_email() {
      data = array('name'=>"Virat Gandhi");

      Mail::send(['text'=>'mail'],data, function(message) {message->to('abc@gmail.com', 'Tutorials Point')->subject
            ('Laravel Basic Testing Mail');
         message->from('xyz@gmail.com','Virat Gandhi');
      });
      echo "Basic Email Sent. Check your inbox.";
   }
   public function html_email() {data = array('name'=>"Virat Gandhi");
      Mail::send('mail', data, function(message) {
         message->to('abc@gmail.com', 'Tutorials Point')->subject
            ('Laravel HTML Testing Mail');message->from('xyz@gmail.com','Virat Gandhi');
      });
      echo "HTML Email Sent. Check your inbox.";
   }
   public function attachment_email() {
      data = array('name'=>"Virat Gandhi");
      Mail::send('mail',data, function(message) {message->to('abc@gmail.com', 'Tutorials Point')->subject
            ('Laravel Testing Mail with Attachment');
         message->attach('C:\laravel-master\laravel\public\uploads\image.png');message->attach('C:\laravel-master\laravel\public\uploads\test.txt');
         $message->from('xyz@gmail.com','Virat Gandhi');
      });
      echo "Email Sent with attachment. Check your inbox.";
   }
}

步骤6 − 将以下代码复制到 resources/views/mail.blade.php 文件中。

resources/views/mail.blade.php

<h1>Hi, {{ $name }}</h1>
l<p>Sending Mail from Laravel.</p>

步骤7 - 在 app/Http/routes.php 中添加以下行。

app/Http/routes.php

Route::get('sendbasicemail','MailController@basic_email');
Route::get('sendhtmlemail','MailController@html_email');
Route::get('sendattachmentemail','MailController@attachment_email');

步骤8 - 访问以下URL以测试基本邮箱功能。

http://localhost:8000/sendbasicemail

步骤9 − 输出屏幕将看起来类似于这样。检查您的收件箱以查看基本的电子邮件输出。

Laravel 发送电子邮件

步骤10 - 访问以下网址以测试HTML电子邮件。

http://localhost:8000/sendhtmlemail

步骤11 - 输出屏幕将类似于这样。检查您的收件箱查看HTML电子邮件输出。

Laravel 发送电子邮件

步骤12 - 访问以下URL以测试带附件的HTML邮件。

http://localhost:8000/sendattachmentemail

步骤13 − 你可以看到以下输出

Laravel 发送电子邮件

注意 - 在 MailController.php 文件中,from方法中的电子邮件地址应该是你可以发送电子邮件的电子邮件地址。一般来说,它应该是在你的服务器上配置的电子邮件地址。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程