sspanel 发送全体通知
为解决公告邮件超时问题,替代公告邮件-发送全体通知
① 进入/app/Command
目录,编辑XCat.php
,插入如下代码:
case("sendUserMessage"):
return DailyMail::sendUserMessage();
case("sendAdminMessage"):
return DailyMail::sendAdminMessage();
② 编辑DailyMail.php
,在63行插入=64行 public static function reall ()
之上 如下代码:
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,内容如下=<body>即为通知内容:
<!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表新增一个字段有则免,
进入“user” > 上方导航栏进入“结构” > 添加1个字段于最后之后 > 执行;
名字填email_Notification
,默认选定义,下方填入0
,点击保存
⑤ 把自己的email_Notification
值改成1,
用搜索,email一栏填写管理员账户邮箱,然后点击执行
⑥ ssh进入网站根目录
给管理员发送通知,用于测试发送效果:
php xcat sendAdminMessage
给用户发送通知:
php xcat sendUserMessage