我在网络上搜索了数据库中的电子邮件触发器。是的,我找到了很多使用触发器发送电子邮件的网站。但是,大多数网站只是教人们使用SQL服务器触发器......
但我目前正在使用phpmyadmin(MySQL),我已经在MySQL中应用了这些方法,但它没有用。
我的问题很简单:如何触发a在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
答案 0 :(得分:1)
你真的不能。
此功能不存在。
技术上......如果您知道如何从命令行发送电子邮件,您可以设想使用lib_mysqludf_sys
从触发器生成shell并发送邮件,但此代码已过时且似乎未维护。我记得,这有点难以编译,也许有点不稳定。
如果您知道如何使用C编写代码,则可以编写自己的UDF。
传统观点认为,触发器并不是发送电子邮件的最佳位置,因为(除其他原因外)如果触发邮件的数据库事务被回滚,邮件显然无法取消发送。
如果您使用的是来自亚马逊的兼容MySQL的数据库引擎Aurora,您可以使用Aurora Lambda integration从触发器发送电子邮件,但此功能仅存在于Aurora中。