首先需要有一个邮箱,没有就注册一个,最好是163邮箱。
本文将使用163邮箱讲解发送邮件的配置及使用fastadmin发送验证码邮件。
目录
Fastadmin版本号
1.6.1.20250430
开启邮箱smtp服务
想操控邮箱发送邮件,需要开启邮箱的POP3/SMTP/IMAP服务。
打开SMTP设置
在邮箱中【设置】->【POP3/SMTP/IMAP】中。
如下:

开启POP3/SMTP服务
进入POP3/SMTP/IMAP页面后,开启POP3/SMTP服务,记录授权密码。

Fastadmin邮件配置
在后台中常规配置>系统配置>邮件配置中
输入smtp服务器、端口号、邮箱、授权密码(开启pop3/smtp获取的授权密码)、发送人邮箱。

发送邮件
配置上述参数后,点击发送测试邮件,输入收件人邮箱之后确定,即可发送邮箱如下:

调用方法
后台的配置调用发送测试邮件方法位于:admin/controller/general/config.php中。
如下:

发送测试邮件如下:

前端接口
当后端配置好邮件配置后,前端发送邮件即可使用。
发送邮件验证码位于:
Api/controller/Ems.php文件中的send方法,如下:
php
public function send()
{
$email = $this->request->post("email");
$event = $this->request->post("event");
$event = $event ? $event : 'register';
if (!$email || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
$this->error(__('邮箱格式错误'));
}
if (!preg_match("/^[a-z0-9_\-]{3,30}\$/i", $event)) {
$this->error(__('事件名称错误'));
}
$last = Emslib::get($email, $event);
if ($last && time() - $last['createtime'] < 60) {
$this->error(__('发送频繁'));
}
$ipSendTotal = \app\common\model\Ems::where(['ip' => $this->request->ip()])->whereTime('createtime', '-1 hours')->count();
if ($ipSendTotal >= 5) {
$this->error(__('发送频繁'));
}
if ($event) {
$userinfo = User::getByEmail($email);
if ($event == 'register' && $userinfo) {
//已被注册
$this->error(__('已被注册'));
} elseif (in_array($event, ['changeemail']) && $userinfo) {
//被占用
$this->error(__('已被占用'));
} elseif (in_array($event, ['changepwd', 'resetpwd']) && !$userinfo) {
//未注册
$this->error(__('未注册'));
}
}
$ret = Emslib::send($email, null, $event);
if ($ret) {
$this->success(__('发送成功'));
} else {
$this->error(__('发送失败'));
}
}
发送验证码邮件如下:

总结
本文将使用163邮箱讲解发送邮件的配置及使用fastadmin发送验证码邮件。