当前位置: 首页 > article >正文

laravel实现发送邮件功能

Laravel提供了简单易用的邮件发送功能,使用SMTP、Mailgun、Sendmail等多种驱动程序,以及模板引擎将邮件内容进行渲染。

1.在项目目录.env配置email信息

MAIL_MAILER=smtp
MAIL_HOST=smtp.qq.com
MAIL_PORT=465
MAIL_FROM_ADDRESS=user@qq.com
MAIL_USERNAME=user@qq.com
MAIL_FROM_NAME=user@qq.com
MAIL_PASSWORD=邮箱SMTP服务授权码(登录QQ邮箱->设置->账号中找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV开启服务)
MAIL_ENCRYPTION=ssl

下面是一个基本的示例:

use App\Libraries\Email\SendEmail;
use Illuminate\Support\Facades\Mail;

 $tableData = [
                [
                   'column1' => '1',
                   'column2' => '2'
                   'column3' => '3',
                   'column4' => '4'
                   'column5' => '5'
                 ]
             ];

Mail::to(user@qq.com)->send(new SendEmail($tableData)

上述代码中,我们使用了Laravel提供的Mail门面类,传入收件人地址并发送邮件。而sendEmail类是一个继承了Mailable类的自定义邮件类,我们可以在其中定义邮件的内容和格式。

<?php

namespace App\Libraries\Email;

use Illuminate\Mail\Mailable;

class SendEmail extends Mailable
{
    public $data;

    public function __construct($data)
    {
        $this->data = $data;
    }

    public function build()
    {
      return $this->view('ordertable')
             ->subject('邮件标题');

    }
}

在上述代码中,我们使用了view方法来指定邮件的视图模板。而视图模板可以通过简单的Blade语法来定义,在resources/views新建一个ordertable.blade.php文件如下所示:

<!DOCTYPE html>
<html>
<head>
    <title>发送邮件</title>
</head>
<body>
<table>
    <thead>
    <tr>
        <th>标题一</th>
        <th>标题二</th>
        <th>标题三</th>
        <th>标题四</th>
        <th>标题五</th>
    </tr>
    </thead>
    <tbody>
    @foreach($data as $row)
        <tr>
            <td>{{ $row['column1'] }}</td>
            <td>{{ $row['column2'] }}</td>
            <td>{{ $row['column3'] }}</td>
            <td>{{ $row['column4'] }}</td>
            <td>{{ $row['column5'] }}</td>
        </tr>
    @endforeach
    </tbody>
</table>
</body>
</html>

这样,当我们调用Mail::to()->send()方法时,Laravel将会自动将HTML模板渲染为邮件内容,并将其发送给指定的收件人。


http://www.kler.cn/a/146193.html

相关文章:

  • Android系统开发(八):从麦克风到扬声器,音频HAL框架的奇妙之旅
  • 聊聊如何实现Android 放大镜效果
  • UllnnovationHub,一个开源的WPF控件库
  • JavaScript--流程控制
  • 消息队列实战指南:三大MQ 与 Kafka 适用场景全解析
  • CSRF攻击XSS攻击
  • Python语言学习笔记之三(字符编码)
  • 基于C#实现块状链表
  • 制造业工厂如何选择生产管理MES系统?
  • iOS移动应用程序的备案与SHA-1值查看
  • 【部署运维】docker:入门到进阶
  • 基于AC6969的蓝牙控制RGB彩灯
  • Java中的jvm——面试题+答案(JVM的一些高级概念、调优技巧、垃圾回收算法等)——第13期
  • Redis-Redis多级缓存架构
  • The Matrix format of Least Square Method (LMS)
  • 实验五 键盘按键与数码管显示(汇编与微机原理)
  • 17 Go的文件操作
  • jenkins + gitlab 自动部署(webhook)
  • 华为认证 | Security安全认证学什么?IA、IP、IE学习内容详解!
  • 『亚马逊云科技产品测评』活动征文|AWS 域名注册、启动与连接 EC2 新实例、端口开放详细教程
  • WT588F02B-8S语音芯片:16位DSP技术引领个性化功能产品新时代
  • 为什么,word文件在只读模式下,仍然能编辑?
  • 第十九章 解读利用pytorch可视化特征图以及卷积核参数(工具)
  • Ubuntu 配置静态 IP
  • 系列二十、Spring循环依赖问题
  • 【Web】[GKCTF 2021]easycms