Rumah  >  Artikel  >  pangkalan data  >  Amalan Pembangunan PHP: Gunakan PHPMailer untuk menghantar e-mel kepada pentadbir dalam pangkalan data MySQL

Amalan Pembangunan PHP: Gunakan PHPMailer untuk menghantar e-mel kepada pentadbir dalam pangkalan data MySQL

王林
王林asal
2023-07-01 15:16:40628semak imbas

Amalan Pembangunan PHP: Gunakan PHPMailer untuk menghantar e-mel kepada pentadbir dalam pangkalan data MySQL

Semasa pembangunan aplikasi web, penghantaran e-mel adalah keperluan biasa. Apabila pengguna menyelesaikan operasi atau sistem menjana acara, kami selalunya perlu memberitahu pentadbir yang berkaitan melalui e-mel. Artikel ini akan memperkenalkan cara menggunakan perpustakaan PHPMailer untuk menghantar e-mel dan menyimpan kandungan e-mel ke pangkalan data MySQL.

1. Pasang perpustakaan PHPMailer

  1. Pasang pustaka PHPMailer dalam projek, dan anda boleh menguruskan kebergantungan melalui Komposer. Jalankan arahan berikut pada baris arahan untuk memasang:

    composer require phpmailer/phpmailer
  2. Perkenalkan perpustakaan PHPMailer ke dalam fail kemasukan projek:

    require 'vendor/autoload.php';

2. Buat jadual pangkalan data
Buat jadual bernama "e-mel" dalam MySQL pangkalan data. Digunakan untuk menyimpan maklumat berkaitan e-mel. Struktur jadual adalah seperti berikut:

CREATE TABLE `emails` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `to_email` varchar(255) NOT NULL,
  `subject` varchar(255) NOT NULL,
  `message` text NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
);

3. Hantar e-mel dan simpannya ke pangkalan data

  1. Buat fungsi untuk menghantar e-mel:

    function sendEmail($to, $subject, $message) {
     $mail = new PHPMailerPHPMailerPHPMailer();
     // 邮件服务器配置
     $mail->isSMTP();
     $mail->Host = 'smtp.example.com';
     $mail->Username = 'your_email@example.com';
     $mail->Password = 'your_email_password';
     $mail->SMTPAuth = true;
     $mail->SMTPSecure = 'tls';
     $mail->Port = 587;
    
     // 邮件内容设置
     $mail->setFrom('from@example.com', 'Your Name');
     $mail->addAddress($to);
     $mail->Subject = $subject;
     $mail->Body = $message;
    
     // 发送邮件
     if ($mail->send()) {
         // 邮件发送成功,保存到数据库
         $mysqli = new mysqli('localhost', 'username', 'password', 'database');
         $stmt = $mysqli->prepare("INSERT INTO `emails` (`to_email`, `subject`, `message`) VALUES (?, ?, ?)");
         $stmt->bind_param('sss', $to, $subject, $message);
         $stmt->execute();
         $stmt->close();
         $mysqli->close();
         
         return true;
     } else {
         // 邮件发送失败
         return false;
     }
    }
  2. Panggil fungsi hantar e-mel dan masukkan penerima, subjek e-mel dan kandungan:

    $to = 'admin@example.com';
    $subject = '有新的通知';
    $message = '您有一个新的通知,请登录后台查看。';
    
    if (sendEmail($to, $subject, $message)) {
     echo '邮件发送成功并保存到数据库。';
    } else {
     echo '邮件发送失败。';
    }

Dengan contoh kod di atas, kita boleh memanggil fungsi sendEmail di mana kita perlu menghantar e-mel dan menyimpannya ke pangkalan data, supaya kita boleh menghantar e-mel melalui PHPMailer dan menyimpan maklumat e-mel ke pangkalan data MySQL.

Ringkasan:
Artikel ini memperkenalkan amalan pembangunan menggunakan perpustakaan PHPMailer untuk menghantar e-mel dan menyimpan kandungan e-mel ke pangkalan data MySQL. Dengan merangkum fungsi menghantar e-mel dan menyimpannya ke pangkalan data, kami boleh menggunakan fungsi pemberitahuan e-mel dalam aplikasi web dengan lebih fleksibel. Pada masa yang sama, menggunakan PHPMailer juga boleh mencapai keperluan penghantaran e-mel yang lebih kompleks. Saya harap artikel ini dapat memberi rujukan untuk amalan pembangun PHP dalam menghantar e-mel.

Atas ialah kandungan terperinci Amalan Pembangunan PHP: Gunakan PHPMailer untuk menghantar e-mel kepada pentadbir dalam pangkalan data MySQL. 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