Envoi d'e-mails depuis MySQL 5.1
L'envoi d'e-mails depuis MySQL peut être réalisé par différentes méthodes. Voici quelques options :
Méthode 1 : Utiliser un service SMTP avec outfile
Si vous disposez d'un service SMTP en cours d'exécution, vous pouvez utiliser la commande outfile pour envoyer des e-mails par écrire dans le répertoire de dépôt. Notez qu'un volume élevé peut entraîner des noms de fichiers en double, mais il existe des techniques pour éviter cela.
Méthode 2 : Création d'un UDF
Vous pouvez également créer un utilisateur -Fonction définie (UDF) pour envoyer des e-mails. Voici un exemple de solution de déclenchement :
CREATE TRIGGER test.autosendfromdrop BEFORE INSERT ON test.emaildrop FOR EACH ROW BEGIN /* WRITE 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;
Méthode 3 : Amélioration du corps du message
Pour formater le corps du message électronique, vous pouvez utiliser une fonction comme celle-ci :
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 ;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!