Merhaba sevgili okurlar! Bugün sizlerle, toplu posta gönderimi yapabileceğiniz bir site oluşturma konusunu ele alacağız. Bu site, e-posta kampanyalarınızı etkili bir şekilde yönetmenize ve geniş bir kitleye hızlıca ulaşmanıza yardımcı olacak. İşte toplu posta gönderimi için PHP altyapılı sistemimiz:
Veritabanı Yapısı Oluşturma (MySQL için):
CREATE TABLE members (
id INT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(255) NOT NULL
);
CREATE TABLE email_lists (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL
);
CREATE TABLE emails (
id INT AUTO_INCREMENT PRIMARY KEY,
list_id INT,
subject VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
FOREIGN KEY (list_id) REFERENCES email_lists(id)
);
Yukarıda verilen MySqL kodlarını sql’de hesap açtıktan sonra phpMyAdmin’e giderek açılan sql tablosunda sorgu olarak çalıştırın.
Üye Kaydı (kayit.php):
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$email = $_POST["email"];
// Veritabanına üyeyi ekleme işlemi
$conn = new mysqli("localhost", "kullanici_adi", "sifre", "veritabani_adi");
if ($conn->connect_error) {
die("Bağlantı hatası: " . $conn->connect_error);
}
$stmt = $conn->prepare("INSERT INTO members (email) VALUES (?)");
$stmt->bind_param("s", $email);
$stmt->execute();
$stmt->close();
$conn->close();
}
?>
E-posta Listesi Oluşturma (list_olustur.php):
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$listName = $_POST["list_name"];
// Veritabanına e-posta listesini ekleme işlemi
$conn = new mysqli("localhost", "kullanici_adi", "sifre", "veritabani_adi");
if ($conn->connect_error) {
die("Bağlantı hatası: " . $conn->connect_error);
}
$stmt = $conn->prepare("INSERT INTO email_lists (name) VALUES (?)");
$stmt->bind_param("s", $listName);
$stmt->execute();
$stmt->close();
$conn->close();
}
?>
E-posta Gönderimi (email_gonder.php):
<?php
require 'PHPMailer/PHPMailer.php';
require 'PHPMailer/SMTP.php';
// E-posta gönderme işlemi
$conn = new mysqli("localhost", "kullanici_adi", "sifre", "veritabani_adi");
if ($conn->connect_error) {
die("Bağlantı hatası: " . $conn->connect_error);
}
$stmt = $conn->prepare("SELECT * FROM emails INNER JOIN email_lists ON emails.list_id = email_lists.id");
$stmt->execute();
$result = $stmt->get_result();
$mail = new PHPMailer\PHPMailer\PHPMailer();
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->Host = 'smtp.sunucu_adresi';
$mail->Port = 587;
$mail->Username = 'kullanici_adi';
$mail->Password = 'sifre';
while ($row = $result->fetch_assoc()) {
$listName = $row['name'];
$subject = $row['subject'];
$content = $row['content'];
$stmt2 = $conn->prepare("SELECT email FROM members");
$stmt2->execute();
$result2 = $stmt2->get_result();
while ($row2 = $result2->fetch_assoc()) {
$email = $row2['email'];
$mail->setFrom('gonderen@ornek.com', 'Gönderen İsmi');
$mail->addAddress($email);
$mail->Subject = $subject;
$mail->Body = $content;
if (!$mail->send()) {
echo 'E-posta gönderim hatası: ' . $mail->ErrorInfo;
}
$mail->clearAddresses();
}
}
$stmt->close();
$conn->close();
?>
Bu örneklerdeki kodlar, temel bir toplu posta gönderimi sistemini oluşturmanıza yardımcı olabilir. Ancak gerçek bir uygulama geliştirirken güvenlik önlemlerini ve daha fazla hata kontrolünü eklemeyi unutmayın. Ayrıca, e-posta gönderimi için kullanıcı izni gibi yasal gereklilikleri de göz önünde bulundurmalısınız.
Daha fazla yazılım içeriği için tıklayın.