嗨,我想在 moodle 数据库表中插入记录后立即发送电子邮件,以下代码不起作用
if ($recs = $ti_form->get_data()) {
// Do something with the data, then redirect to a new page
$lastinsertid = $DB->insert_record('suggestions', $recs);
$toUser = 'omerzia@live.com';
$fromUser = 'ICAN';
$subject = 'New Suggestion Added';
$messageText = 'New Suggestion Added';
$sent = email_to_user($toUser, $fromUser, $subject, $messageText);
//mail($to, $subject, $message, $headers);
if($sent) {
print "Email successfully sent";
}else{
print "There was an error sending the mail";
}
redirect('suggestions.php');
}
上面的代码给出错误消息。可能是什么原因?任何帮助非常感谢。
谢谢
如果你看一下 email_to_user() 函数的 phpdoc 头文件,前 2 个参数应该是用户对象而不是字符串。
* @param stdClass $user A {@link $USER} object
* @param stdClass $from A {@link $USER} object
所以对于用户
$touser = $DB->get_record('user', array('email' => 'omerzia@live.com');
对于来自用户,您可以使用支持用户
$fromuser = core_user::get_support_user();
在 Moodle 中启用电子邮件调试
在 Moodle 插件中开发电子邮件支持时,您可以制作 通过启用电子邮件调试,生活变得更加轻松,但是这 应该只在开发环境中完成。设置都是 在你通常会去的同一个地方放置 Moodle 调试 开发人员模式。只需完成以下步骤:
- 单击"站点管理">"高级功能">开发>调试
- 将调试消息设置为开发人员:为开发人员提供额外的 Moodle 调试消息
- 选中显示调试消息框。
- 选中调试电子邮件发送复选框。
- 点击页面底部的保存更改。
调试后,不要忘记返回并禁用这些设置。
调试您的工作,这将向您显示一些对您的问题有帮助的输出。