如果没有自建邮件服务器,直接结合网易、阿里邮箱可以非常简单方便的使用邮件发送功能。
注册前首先得保证自己有一个域名,阿里最好是在当前账户下有一个已注册的域名。
根据下方地址注册相应的账户信息,选择其中一个即可:
注册成功后,自行添加域名 MX 解析,直到生效。
接着通过各自的后台管理添加需要来用作为发件人的邮箱地址,例如:
添加商业客服:business@example.com,并为其配置登录密码。
然后获取网易/阿里邮箱的 SMTP 发件地址等信息:
在此我不建议使用 25 端口作为发送端口使用,建议使用 SSL 加密的 994(网易)/465(阿里)端口。
项目配置:
- 编辑
.env
文件,配置发件信息:# 邮箱驱动,默认使用 smtp 即可 MAIL_DRIVER=smtp # 网易:smtp.ym.163.com;阿里:smtp.qiye.aliyun.com MAIL_HOST=smtp.qiye.aliyun.com # 发件端口,网易:994;阿里:465 MAIL_PORT=465 # 发件人邮箱帐号 MAIL_USERNAME=business@example.com # 发件人邮箱密码 MAIL_PASSWORD=password # 加密方式,因为 SMTP 没有使用 25 端口,所以此处填写 ssl MAIL_ENCRYPTION=ssl # 配置全局默认发件地址 MAIL_FROM_ADDRESS=business@example.com # 发件人名称 MAIL_FROM_NAME=商业客服
- 安装 Guzzle HTTP 函数库,
composer require guzzlehttp/guzzle
- 创建 Markdown 格式邮件对象 Mailable,
php artisan make:mail FirstMail --markdown=emails.first
。命令会直接创建app/Mail/FirstMail.php
文件和resources/views/emails/first.blade.php
文件 - 新建一个测试控制器(自己写好路由),直接调用就可以发送啦!
public function send() { Mail::to('收件人邮箱地址')->send(new FirstMail()); }
接收到的默认邮件大概是这个样子的:
first.blade.php
中对应的 @component
组件可以通过发布出视图文件进行相应修改:
php artisan vendor:publish --tag=laravel-mail
执行该命令后 resouces/views
下会多出 vendor/mail
目录,可以根据需要调整邮件内容。