gpt4 book ai didi

mysql - PHP/MySQL 如何触发给客户的短信或邮件

转载 作者:行者123 更新时间:2023-11-29 19:30:20 25 4
gpt4 key购买 nike

我刚开始使用 - PHP-Codeigniter 2.1.3、MySQL、XAMPP。我有一个数据库表客户,当新客户对该表感兴趣时,我希望立即向他的手机发送邮件或短信

我尝试了以下代码,在 MySQL 表中我添加了一个带有 customer 表的触发器,在该触发器中我想将我的 php 文件或 CONTROLLER 路径分配给发送的邮件,但显示错误。

BEGIN
IF NEW.flag = 1 THEN
DECLARE result CHAR(255);
SET cmd = CONCAT('E:/xampp/php/php.exe -f "E:/xampp/htdocs/DEN/sentMail.php"');
END IF;
END

我该如何解决这个问题,还有其他简单的方法吗...!!我非常期待您的想法和支持。预先感谢您。

最佳答案

我认为这不是一个好的解决方案,因为它严格针对该系统路径运行。

我脑子里有两个解决方案,正在我当前的项目中使用。

  1. 不太确定 CI,但您可以使用事件/观察者/订阅者 w/e 模式。因此,在代码中为客户创建事件的任何位置 CustomerCreated($customer)被解雇。然后是sendMail可以在该事件上触发处理程序。这样您就可以拥有多个 channel 来创建客户,并且 sendMail处理程序也可以附加到多个事件。

  2. 除了该解决方案之外,另一种实践也对我很有帮助。由于发送电子邮件是一个相对较慢的操作,因此您可以构建 emails数据库中的表,例如( id, from, to, type_id, status, sent_at, to_be_sent_at ),然后创建一个脚本来获取 to_be_sent_at < now() and sent_at is not null 中的所有电子邮件(或 status <> whatever ),分发电子邮件,更新 statussent_at 。然后,您可以设置一个 cron 作业,每 x 分钟执行一次该脚本。这样,您可以在代码中的任何位置添加到此表中,并且您知道电子邮件将在给定时间分发。有了表格就可以轻松调试。

另请查看this post查看为什么您的代码不起作用。

我记得有一个 mysql 扩展提供了此功能,但是我非常怀疑这是一个好的做法。你将变得高度依赖你的数据库,从我的角度来看,情况应该完全相反。

希望您觉得这很有用,

干杯

关于mysql - PHP/MySQL 如何触发给客户的短信或邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41823554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com