我通过网络搜索了数据库中的电子邮件触发器。是的,我发现很多网站都使用触发器来发送电子邮件。然而,大多数网站只是教人们使用 SQL-server 触发器...
但是我目前使用的是phpmyadmin(MySQL),我已经在MySQL中应用了这些方法,但它不起作用。
我的问题很简单:如何在 phpmyadmin (MySQL) 中触发发送电子邮件?
有人说 PhpMyAdmin 不支持这种开箱即用的功能。您需要访问 MySql 服务器来创建 UDF 来发送实际的电子邮件。 从这里:Check this out.
下面的代码仅在SQL-server中使用:
CREATE TRIGGER leave_system.email ON leave_system.leave_request
FOR INSERT
AS
BEGIN
SET NOCOUNT ON;
IF EXISTS (SELECT day_in_advance FROM leave_request WHERE day_in_advance <= 0)
BEGIN
EXEC msdb.dbo.sp_send_dbmail
@recipients = 'whoever@yourcompany.com',
@profile_name = 'default',
@subject = 'Someone was speeding',
@body = 'Yep, they sure were.';
END
END
GO
最佳答案
你真的不能。
此功能不存在。
从技术上讲...如果您知道如何从命令行发送电子邮件,您可以使用 lib_mysqludf_sys
从触发器生成 shell 并发送邮件,但此代码很旧并且似乎没有维护。我记得,编译起来有点棘手,而且可能有点不稳定。
如果您知道如何用 C 语言编写代码,您就可以编写自己的 UDF。
传统观点认为,触发器实际上并不是发送电子邮件的最佳位置,因为(除其他原因外)如果触发邮件的数据库事务回滚,则邮件显然无法取消发送。
如果您使用 Aurora(来自 Amazon 的 MySQL 兼容数据库引擎),则可以使用 Aurora Lambda integration从触发器发送电子邮件,但此功能仅存在于 Aurora 中。
关于php - 是否可以使用 MySQL 触发器发送电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45025959/