"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo enviar notificaciones dinámicas por correo electrónico de MySQL 5.1 usando desencadenantes y UDF?

¿Cómo enviar notificaciones dinámicas por correo electrónico de MySQL 5.1 usando desencadenantes y UDF?

Publicado el 2025-02-07
Navegar:822

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

cómo enviar notificaciones de correo electrónico desde mySQL 5.1

Cuando se inserta una nueva fila en una tabla, su objetivo es enviar correos electrónicos a múltiples destinatarios Determinado dinámicamente a través de una instrucción seleccionada. Además, encuentra limitaciones con el sistema de notificación de correo electrónico predeterminado de Navicat.

usando SMTP y OUTFILE

Si un servicio SMTP se está ejecutando, puede usar la palabra clave de salida para escribir el Correo de correo electrónico a un directorio de caída. Sin embargo, este enfoque puede dar lugar a nombres de archivos duplicados si tiene un alto volumen.

udf Solution

otra opción es crear una función definida por el usuario (UDF). Aquí hay una solución de activación de muestra:

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;

marcar el cuerpo de correo electrónico

para formatear correctamente el cuerpo de correo electrónico para el contenido html, use una función como esta:

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;
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3