Методы управления простым списком рассылки в PHP

Для управления простым списком рассылки в PHP вы можете использовать различные методы. Вот несколько примеров:

  1. Использование простого файла.
    В этом методе вы можете хранить адреса электронной почты в простом файле, например CSV или текстовом файле. Вот пример:
<?php
// Add email to the mailing list
function addEmailToList($email)
{
    $file = 'mailing_list.csv';
    $handle = fopen($file, 'a');
    fputcsv($handle, [$email]);
    fclose($handle);
}
// Get all emails from the mailing list
function getEmailList()
{
    $file = 'mailing_list.csv';
    $emails = [];
    if (($handle = fopen($file, 'r')) !== false) {
        while (($data = fgetcsv($handle)) !== false) {
            $emails[] = $data[0];
        }
        fclose($handle);
    }
    return $emails;
}
// Usage
addEmailToList('example@example.com');
$emailList = getEmailList();
print_r($emailList);
?>
  1. Использование базы данных.
    Другой подход — сохранить адреса электронной почты в таблице базы данных. Вот пример использования MySQL:
<?php
// Connect to the database
$servername = 'localhost';
$username = 'your_username';
$password = 'your_password';
$dbname = 'your_database_name';
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die('Connection failed: ' . $conn->connect_error);
}
// Add email to the mailing list
function addEmailToList($email)
{
    global $conn;
    $sql = "INSERT INTO mailing_list (email) VALUES ('$email')";
    $conn->query($sql);
}
// Get all emails from the mailing list
function getEmailList()
{
    global $conn;
    $emails = [];
    $sql = "SELECT email FROM mailing_list";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            $emails[] = $row['email'];
        }
    }
    return $emails;
}
// Usage
addEmailToList('example@example.com');
$emailList = getEmailList();
print_r($emailList);
// Close the database connection
$conn->close();
?>
  1. Использование внешней службы электронной почты.
    Если вы предпочитаете не управлять списком рассылки самостоятельно, вы можете использовать внешнего поставщика услуг электронной почты, например Mailchimp или SendGrid. Эти службы предлагают API, которые позволяют вам программно управлять списком рассылки. Вот пример использования API Mailchimp:
<?php
require_once 'vendor/autoload.php'; // Mailchimp PHP library
use \DrewM\MailChimp\MailChimp;
// Add email to the mailing list
function addEmailToList($email)
{
    $api_key = 'your_mailchimp_api_key';
    $list_id = 'your_mailchimp_list_id';
    $MailChimp = new MailChimp($api_key);
    $result = $MailChimp->post("lists/$list_id/members", [
        'email_address' => $email,
        'status' => 'subscribed'
    ]);
    if ($MailChimp->success()) {
        echo 'Email added to the mailing list.';
    } else {
        echo 'Error: ' . $MailChimp->getLastError();
    }
}
// Usage
addEmailToList('example@example.com');
?>