Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menghantar E-mel daripada MySQL 5.1 Menggunakan Kaedah Berbeza?

Bagaimanakah Saya Boleh Menghantar E-mel daripada MySQL 5.1 Menggunakan Kaedah Berbeza?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-27 05:30:13247semak imbas

How Can I Send Emails from MySQL 5.1 Using Different Methods?

Menghantar E-mel daripada MySQL 5.1

Menghantar e-mel daripada MySQL boleh dicapai melalui pelbagai kaedah. Berikut ialah beberapa pilihan:

Kaedah 1: Menggunakan Perkhidmatan SMTP dengan fail luar

Jika anda menjalankan perkhidmatan SMTP, anda boleh menggunakan arahan fail luar untuk menghantar e-mel dengan menulis ke direktori drop. Ambil perhatian bahawa kelantangan tinggi boleh mengakibatkan nama fail pendua, tetapi terdapat teknik untuk menghalangnya.

Kaedah 2: Mencipta UDF

Sebagai alternatif, anda boleh mencipta Pengguna -Fungsi Ditentukan (UDF) untuk menghantar e-mel. Berikut ialah contoh penyelesaian pencetus:

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;

Kaedah 3: Mempertingkatkan Badan Mesej

Untuk memformat badan mesej e-mel, anda boleh menggunakan fungsi seperti ini:

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 ;

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghantar E-mel daripada MySQL 5.1 Menggunakan Kaedah Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn