Bootstrap

Laravel框架的邮件发送

基于环境

laravel版本:7.0+
基于 Laravel Framework 5.5.45,使用自带的SMTP协议提供驱动。

Laravel支持多种邮件驱动方式,包括smtpMailgunMaildrillAmazon SESmailsendmailMailgunAmazon SES都是收费的,Maildrill目前不支持中国区用户,这三个都是第三方邮件服务。mail驱动使用PHP提供的mail函数发送,sendmail驱动通过Sendmail/Postfix(Linux)提供的命令发送邮件,smtp驱动通过支持ESMTPSMTP发送邮件。

就目前状况来看,使用smtp是最明智的选择,mail不安全,sendmail需要安装配置Sendmail/Postfix,其他要么付费要么不能用。

邮箱配置

  • 进入config/mail.php文件修改对应的参数配置
  • 或进入.env文件修改MAIL_开头的几个参数值
MAIL_DRIVER=smtp
MAIL_HOST= smtp.qiye.163.com
MAIL_PORT= 端口号 // 25
MAIL_USERNAME= 邮箱地址 //xxx.com
MAIL_PASSWORD= 邮箱地址对应的授权密码(不是登录密码)
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=邮箱地址,这项需要和MAIL_USERNAME一模一样
MAIL_FROM_NAME=发件人名称

ps:MAIL_ENCRYPTION可以根据需要修改,但是如果不使用ssl,也需要修改MAIL_PORT为25端口

生成可邮寄类

输入指令php artisan make:mail OrderShipped会在app/Mail下生成一个邮寄类OrderShipped

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\Seria
;