ホームページ > データベース > mysql チュートリアル > トリガーと UDF を使用して MySQL 5.1 からの電子メール送信を自動化する方法

トリガーと UDF を使用して MySQL 5.1 からの電子メール送信を自動化する方法

Susan Sarandon
リリース: 2024-11-26 01:13:11
オリジナル
420 人が閲覧しました

How to Automate Email Sending from MySQL 5.1 Using Triggers and UDFs?

トリガーと UDF を使用して MySQL 5.1 から電子メールを送信する方法

データベース イベントに基づいた自動電子メールの送信は、MySQL 5.1 で実現できます。この記事では、トリガー ベースのソリューションとユーザー定義関数 (UDF) ベースのソリューションという 2 つのアプローチについて説明します。

1.トリガーベースのソリューション

このアプローチには、指定されたテーブルに対する挿入操作の前に起動するトリガーの作成が含まれます。トリガーの例を次に示します。

CREATE TRIGGER test.autosendfromdrop BEFORE INSERT ON test.emaildrop
FOR EACH ROW BEGIN
  /* START THE WRITING OF THE EMAIL FILE HERE*/      
  SELECT  concat("To: ",NEW.To),
          concat("From: ",NEW.From),
          concat("Subject: ",NEW.Subject),
          NEW.Body
      INTO OUTFILE 
               "C:\inetpub\mailroot\pickup\mail.txt" 
      FIELDS TERMINATED by '\r\n' ESCAPED BY '';            
END;
ログイン後にコピー

このトリガーは、emaildrop テーブルに挿入された値に基づいて電子メール ファイルを作成します。要件に基づいてファイルをカスタマイズできます。

2. UDF ベースのソリューション

電子メール本文のマークアップを拡張するには、UDF を使用できます。

CREATE FUNCTION `HTMLBody`(Msg varchar(8192)) 
RETURNS varchar(17408) CHARSET latin1 DETERMINISTIC
BEGIN
  declare tmpMsg varchar(17408);
  set tmpMsg = cast(concat(
      'Date: ',date_format(NOW(),'%e %b %Y %H:%i:%S -0600'),'\r\n',
      'MIME-Version: 1.0','\r\n',
      'Content-Type: multipart/alternative;','\r\n',
      ' boundary=\"----=_NextPart_000_0000_01CA4B3F.8C263EE0\"','\r\n',
      'Content-Class: urn:content-classes:message','\r\n',
      'Importance: normal','\r\n',
      'Priority: normal','\r\n','','\r\n','','\r\n',
      'This is a multi-part message in MIME format.','\r\n','','\r\n',
      '------=_NextPart_000_0000_01CA4B3F.8C263EE0','\r\n',
      'Content-Type: text/plain;','\r\n',
      '  charset=\"iso-8859-1\"','\r\n',
      'Content-Transfer-Encoding: 7bit','\r\n','','\r\n','','\r\n',
      Msg,
      '\r\n','','\r\n','','\r\n',
      '------=_NextPart_000_0000_01CA4B3F.8C263EE0','\r\n',
      'Content-Type: text/html','\r\n',
      'Content-Transfer-Encoding: 7bit','\r\n','','\r\n',
      Msg,
      '\r\n','------=_NextPart_000_0000_01CA4B3F.8C263EE0--'
      ) as char);
  RETURN tmpMsg;
END ;
ログイン後にコピー

この関数を使用して、電子メール本文のコンテンツを拡張して書式を改善できます。

以上がトリガーと UDF を使用して MySQL 5.1 からの電子メール送信を自動化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート