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

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

Susan Sarandon
リリース: 2024-12-04 06:25:14
オリジナル
290 人が閲覧しました

How to Send Dynamic Email Notifications from MySQL 5.1 Using Triggers and UDFs?

MySQL 5.1 から電子メール通知を送信する方法

テーブルに新しい行が挿入されたときに、複数の受信者に電子メールを送信することを目的とします。 select ステートメントを通じて動的に決定されます。さらに、Navicat の所定の電子メール通知システムにも制限が生じます。

SMTP と OUTFILE の使用

SMTP サービスが実行されている場合は、OUTFILE キーワードを使用して電子メールの本文をディレクトリにドロップします。ただし、ボリュームが多い場合、この方法ではファイル名が重複する可能性があります。

UDF ソリューション

別のオプションは、ユーザー定義関数 (UDF) を作成することです。トリガー ソリューションのサンプルを次に示します。

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;
ログイン後にコピー

電子メール本文のマークアップ

HTML コンテンツ用に電子メール本文を正しくフォーマットするには、次のような関数を使用します。

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 までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート