Триггер для отправки нескольких писем - PullRequest
0 голосов
/ 20 ноября 2018

Я установил расширение pgsmtp для отправки почты из Postgres (версия 9.3), и я хотел создать триггер для отправки почты на основе значений в таблице.

Это таблица, из которойтриггер рисует данные для отправки писем:

    CREATE TABLE scadenze_lcl_fibra
(
  gid serial NOT NULL,
  lcl_numero numeric(10,0) NOT NULL,
  mail integer DEFAULT 0,
  CONSTRAINT scadenze_lcl_fibra_pkey PRIMARY KEY (gid)
)
WITH (
  OIDS=FALSE
);

Это триггер:

CREATE TRIGGER mail_scad_lcl_fibra
  AFTER INSERT
  ON scadenze_lcl_fibra
  FOR EACH ROW
  EXECUTE PROCEDURE mail_scad_lcl_fibra();
ALTER TABLE scadenze_lcl_fibra DISABLE TRIGGER mail_scad_lcl_fibra;

А это функция:

CREATE OR REPLACE FUNCTION mail_scad_lcl_fibra()
  RETURNS trigger AS
$BODY$
BEGIN
IF new.mail = 0 THEN
perform pgsmtp.pg_smtp_mail('sender@mail.com','receiver@mail.com',array[''], (SELECT 'Number LCL ' || new.lcl_numero FROM scadenze_lcl_fibra LIMIT 1),(SELECT 'Notify LCL ' || new.lcl_numero FROM scadenze_lcl_fibra LIMIT 1));
ELSE NULL;
END IF;
RETURN NEW;
END
$BODY$

Я бы хотел триггер один разкоманда для отправки почты (pgsmtp.pg_smtp_mail) выполняется, изменяет значение в столбце mail в 1 и выполняет команду для следующей строки.

Как я могу это сделать?

...