前言
有时候需要给用户发送一些通知,节点维护啊,节点调整啊,促销活动啊等等。我看好多飞机场都是直接拿每日用量的邮件模板配合网站最新公告,然后来一条php
命令实现,太没有技术含量了有木有。 本文教你如何优雅的实现 🙂
步骤
进入网站根目录,进入/app/Command
目录,编辑XCat.php
文件,在第43行前面插入
case("sendUserMessage"): return DailyMail::sendUserMessage(); case("sendAdminMessage"): return DailyMail::sendAdminMessage();
插入后保存
然后编辑DailyMail.php
文件
在第63行插入
public static function sendUserMessage() #sendUserMessage,给用户发送通知 { $users = User::all(); foreach ($users as $user) { if ($user->email_Notification==0) { #管理员账户email_Notification设为1,用户设为0 echo "Sending:".$user->id."... Done.\r\n"; $subject = "全体通知"; #邮件标题 $to = $user->email; try { Mail::send($to, $subject, 'news/Message.tpl', [ "user" => $user ], [ ]); } catch (Exception $e) { echo $e->getMessage(); } } } } public static function sendAdminMessage() #sendAdminMessage,给管理员发送通知,用于测试发送效果 { $users = User::all(); foreach ($users as $user) { if ($user->email_Notification==1) { #管理员账户email_Notification设为1,用户设为0 echo "Sending:".$user->id."... Done.\r\n"; $subject = "全体通知"; #邮件标题 $to = $user->email; try { Mail::send($to, $subject, 'news/Message.tpl', [ "user" => $user ], [ ]); } catch (Exception $e) { echo $e->getMessage(); } } } }
然后进入网站根目录的/resources/email/news
文件夹,创建Message.tpl
文件,文件内容如下
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width"/> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> </head> <body> <p>您好,{$user->user_name}。</p> </body> </html>
然后就是给user
表新增一个字段了,登陆phpmyadmin
,选中sspanel
,user
名字填email_Notification
,默认选定义,然后填入0
,最后点击保存
然后把自己的email_Notification
值改成1
。用搜索,email一栏填写你的管理员账户邮箱,然后点击执行
选中,编辑
改成1
,点执行
至此,基本功能已经实现了,ssh连接到服务器,进入网站根目录,php xcat sendAdminMessage
一下看看效果
使用
php xcat sendUserMessage
,给用户发送通知
php xcat sendAdminMessage
,给管理员发送通知,用于测试发送效果
发表回复