So senden Sie E-Mails aus MySQL 5.1 mithilfe von Triggern und UDFs
Das Senden automatischer E-Mails basierend auf Datenbankereignissen kann mit MySQL 5.1 erreicht werden. In diesem Artikel werden zwei Ansätze untersucht: eine auslöserbasierte Lösung und eine auf benutzerdefinierten Funktionen (UDF) basierende Lösung.
1. Triggerbasierte Lösung
Bei diesem Ansatz wird ein Trigger erstellt, der vor einem Einfügevorgang für eine bestimmte Tabelle ausgelöst wird. Hier ist ein Beispiel-Trigger:
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;
Dieser Trigger erstellt eine E-Mail-Datei basierend auf den in die E-Mail-Drop-Tabelle eingefügten Werten. Sie können die Datei entsprechend Ihren Anforderungen anpassen.
2. UDF-basierte Lösung
Um das Markup des E-Mail-Texts zu verbessern, kann ein UDF verwendet werden:
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 ;
Diese Funktion kann verwendet werden, um den Inhalt des E-Mail-Texts für eine verbesserte Formatierung zu verbessern.
Das obige ist der detaillierte Inhalt vonWie automatisiere ich den E-Mail-Versand von MySQL 5.1 mithilfe von Triggern und UDFs?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!