> 데이터 베이스 > MySQL 튜토리얼 > 트리거 및 UDF를 사용하여 MySQL 5.1에서 동적 이메일 알림을 보내는 방법은 무엇입니까?

트리거 및 UDF를 사용하여 MySQL 5.1에서 동적 이메일 알림을 보내는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-04 06:25:14
원래의
279명이 탐색했습니다.

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

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿