2017-07-11 161 views
0

私はネットワーク上でデータベースの電子メールトリガーについて検索しました。はい、私は電子メールを送信するためにトリガーを使用する多くのウェブサイトを発見しました。しかし、ウェブサイトのほとんどは、人々にSQLサーバのトリガを使用するよう教えるだけです...MySQLのトリガーでメールを送信することはできますか?

私は現在phpmyadmin(MySQL)を使用していますが、私はそれらの方法をMySQLに適用しましたが、動作しません。

私の質問はとても簡単です:どのように私はphpmyadmin(MySQLの)で電子メールを送信するトリガーを作ることができますか?

誰かがPhpMyAdminがこのアウトオブボックスをサポートしていないと言います。実際の電子メールを送信するためのUDFを作成するには、MySqlサーバーにアクセスする必要があります。ここから :Check this out.

次のコードは、SQLサーバーで使用されています。

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 = '[email protected]', 
      @profile_name = 'default', 
      @subject = 'Someone was speeding', 
      @body = 'Yep, they sure were.'; 
    END 
END 
GO 
+0

あなたはこれまで何をしていますか?コード/トリガーを表示してください... – Jadeye

+0

上記の更新された質問を確認してください。 –

+0

ベストプラクティスはテーブルに格納し、小さなプログラムを作成してテーブルを確認し、定期的に送信することです –

答えて

1

あなたは本当にすることはできません。

この機能は存在しません。

技術的には、コマンドラインから電子メールを送信する方法が分かっている場合は、lib_mysqludf_sysを使用してトリガーからシェルを生成してメールを送信することができますが、このコードは古く、維持されていないようです。私が思い出したように、コンパイルするのはやや難しく、おそらく少し不安定です。

Cでコーディングする方法を知っていれば、独自のUDFを書くことができます。

通常、メールをトリガーするデータベーストランザクションがロールバックされている場合、トリガーはメールを送信するのに最適な場所ではありません。メールは明らかに送信されません。

AmazonのMySQL互換データベースエンジンであるAuroraを使用していた場合は、Aurora Lambda integrationを使用してトリガーから電子メールを送信できますが、この機能はAuroraにのみ存在します。

関連する問題