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 중국어 웹사이트의 기타 관련 기사를 참조하세요!