php - 是否可以使用 MySQL 触发器发送电子邮件?

标签 php mysql email

我通过网络搜索了数据库中的电子邮件触发器。是的,我发现很多网站都使用触发器来发送电子邮件。然而,大多数网站只是教人们使用 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/

相关文章:

PHP - 从数据 URI 调整图像大小并压缩图像

php - 如果 foreach 循环中的值不相等,则尝试执行某些操作,但未获得预期结果

php - 如何让浏览器显示同名图片而不是缓存的图片?

PHP session 在前往另一个页面时无法识别变量

mysql - 在innoDB中使用触发器安全吗?

php - 向每位在 MediaWiki 中创建文章的用户发送感谢邮件

php - 从文本文件插入数据库,使用特殊字符,如 , 和\

mysql - 如何在 MySQL 中的 Time_Stamp 列上创建索引?

php - 在 laravel markdown 电子邮件中嵌入图像

c# - 如何收集用户对软件的意见