Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ketahui cara melaksanakan fungsi pengurusan senarai hitam untuk penghantaran e-mel dalam laman web melalui PHP dan PHPMAILER

Ketahui cara melaksanakan fungsi pengurusan senarai hitam untuk penghantaran e-mel dalam laman web melalui PHP dan PHPMAILER

PHPz
PHPzasal
2023-07-22 10:07:55825semak imbas

Ketahui cara melaksanakan fungsi pengurusan senarai hitam untuk penghantaran e-mel dalam laman web melalui PHP dan PHPMailer

Sebagai pembangun laman web, anda mungkin sering perlu melaksanakan fungsi penghantaran e-mel dalam laman web. Menghantar e-mel ialah cara penting untuk komunikasi antara pengguna laman web dan tapak web. Walau bagaimanapun, kadangkala kami mungkin perlu menyekat pengguna atau alamat e-mel tertentu daripada menghantar e-mel ke tapak kami.

Untuk mencapai fungsi ini, kami boleh menggunakan PHP dan PHPMailer untuk mengurus senarai hitam dan menambah pengguna atau alamat e-mel tertentu ke senarai hitam untuk mengehadkan kebenaran mereka menghantar e-mel. Dalam artikel ini, kita akan belajar cara melaksanakan fungsi pengurusan senarai hitam menggunakan PHP dan PHPMailer.

Pertama, kita perlu membuat senarai hitam untuk menyimpan pengguna atau alamat e-mel yang dihadkan daripada menghantar e-mel. Kita boleh menggunakan jadual pangkalan data untuk menyimpan senarai senarai hitam ini, yang mengandungi medan seperti ID senarai hitam, pengguna atau alamat e-mel dan masa ditambah pada senarai hitam. Berikut ialah contoh pernyataan SQL untuk membuat senarai senarai hitam:

CREATE TABLE blacklist (
    id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    email VARCHAR(255) NOT NULL,
    added_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Seterusnya, kami akan menggunakan PHP untuk menyambung ke pangkalan data dan menulis fungsi yang sepadan untuk menambah, memadam dan menyemak pengguna atau alamat e-mel dalam senarai hitam. Pertama, kita perlu menyambung ke pangkalan data, anda boleh menggunakan kod berikut:

<?php
$servername = "localhost";
$username = "root";
$password = "your_password";
$dbname = "your_database";

// 创建数据库连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接是否成功
if ($conn->connect_error) {
    die("数据库连接失败:" . $conn->connect_error);
}
?>

Seterusnya, kita boleh menulis fungsi untuk menambah pengguna atau alamat e-mel ke senarai hitam. Berikut ialah contoh fungsi:

function addToBlackList($email)
{
    // 全局变量$conn是数据库连接对象

    // 检查邮箱是否已经在黑名单中
    $sql = "SELECT id FROM blacklist WHERE email='$email'";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        // 邮箱已经在黑名单中
        return false;
    } else {
        // 将邮箱添加到黑名单
        $sql = "INSERT INTO blacklist (email) VALUES ('$email')";
        if ($conn->query($sql) === TRUE) {
            return true;
        } else {
            return false;
        }
    }
}

Kami kemudian boleh menulis fungsi yang mengalih keluar pengguna atau alamat e-mel daripada senarai hitam. Berikut adalah contoh fungsi:

function removeFromBlackList($email)
{
    // 全局变量$conn是数据库连接对象

    // 从黑名单中删除邮箱
    $sql = "DELETE FROM blacklist WHERE email='$email'";
    if ($conn->query($sql) === TRUE) {
        return true;
    } else {
        return false;
    }
}

Akhir sekali, kita perlu menyemak sama ada pengguna atau alamat e-mel berada dalam senarai hitam. Berikut adalah contoh fungsi:

function checkBlackList($email)
{
    // 全局变量$conn是数据库连接对象

    // 检查邮箱是否在黑名单中
    $sql = "SELECT id FROM blacklist WHERE email='$email'";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        // 邮箱在黑名单中
        return true;
    } else {
        // 邮箱不在黑名单中
        return false;
    }
}

Kini, kami telah berjaya menulis fungsi yang menguruskan senarai hitam. Seterusnya, kami menggunakan PHPMailer untuk melaksanakan fungsi penghantaran e-mel dan menyemak sama ada penghantar berada dalam senarai hitam sebelum menghantar. Berikut ialah contoh kod:

<?php
require 'phpmailer/PHPMailerAutoload.php';

// 创建邮件对象
$mail = new PHPMailer;

// 配置SMTP服务器
$mail->isSMTP();
$mail->Host = 'smtp.yourdomain.com';
$mail->SMTPAuth = true;
$mail->Username = 'your_email@example.com';
$mail->Password = 'your_password';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;

// 设置发送方和收件人
$mail->setFrom('your_email@example.com', 'Your Name');
$mail->addAddress('recipient@example.com', 'Recipient Name');

// 设置邮件内容和主题
$mail->Subject = 'Hello from PHPMailer';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';

// 检查发送者是否在黑名单中
if (checkBlackList('your_email@example.com')) {
    echo "您不能发送邮件。";
} else {
    // 发送邮件
    if (!$mail->send()) {
        echo '邮件发送失败: ' . $mail->ErrorInfo;
    } else {
        echo '邮件发送成功!';
    }
}
?>

Dalam contoh di atas, kami mula-mula mengkonfigurasi pelayan SMTP dan penghantar dan penerima mel. Kami kemudian menggunakan fungsi checkBlackList() untuk menyemak sama ada pengirim berada dalam senarai hitam. Jika pengirim berada dalam senarai hitam, kami akan mengeluarkan mesej segera yang menunjukkan bahawa penghantaran gagal jika tidak, kami menggunakan PHPMailer untuk menghantar e-mel.

Dengan contoh kod di atas, kami boleh melaksanakan fungsi pengurusan senarai hitam dengan jayanya dan menyemak sama ada pengirim berada dalam senarai hitam sebelum menghantar e-mel. Dengan cara ini, kami boleh menyekat pengguna atau alamat e-mel tertentu daripada menghantar e-mel ke tapak web kami.

Ringkasnya, melalui PHP dan PHPMailer, kami boleh melaksanakan fungsi pengurusan senarai hitam dengan mudah untuk penghantaran e-mel. Melalui fungsi pengurusan senarai hitam, kami boleh menyekat pengguna atau alamat e-mel tertentu daripada menghantar e-mel ke tapak web kami untuk melindungi keselamatan laman web dan pengalaman pengguna kami. Saya harap artikel ini berguna kepada anda, terima kasih kerana membaca!

Atas ialah kandungan terperinci Ketahui cara melaksanakan fungsi pengurusan senarai hitam untuk penghantaran e-mel dalam laman web melalui PHP dan PHPMAILER. 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