Kazım Ölmez

Web Tasarım Uzmanı

PhpMailer İle Çoklu E-mail Göndermek

PhpMailer İle Çoklu E-mail Göndermek

Selâmün Aleyküm. PhpMailer İle Çoklu E-mail Göndermek konusunu yıllar önce işlemiştim ama şu zaman da da bu tür sorularla karşılaştığım için tekrar paylaşmak istedim. Ben iki dosya kullandım ama siz tek dosya ile halledebilirsiniz veya 3 dosyayla da yapabilirsiniz bu işlemi, orası size kalmış. Burada mantığı anlayın yeter.

İlk olarak index.html dosya içeriği:

<html>
<head>
<meta charset="utf-8">
<title>PhpMailer Çoklu Email Gönderme</title>
</head>
<body>




<form action="gonder.php" method="POST">
Başlık:
<input type="text" name="baslik">
Mesajınız:
<textarea name="mesaj"></textarea>
<input type="submit" name="gonder" value="Gönder Hepsine">
</form>




</body>
</html>

 

Ve gonder.php dosya içeriği:

<?php if (isset($_POST['gonder'])) { require_once('class.phpmailer.php'); //phpmailer dahil ettik require_once('conn.php'); //veritabanı bağlantı dosyası require_once("class.smtp.php"); //smtp dosyasını dahil ettik $mail = new PHPMailer(); //phpmailer başlattık $baslik = $_POST['baslik']; //formdan gelen mesaj başlığını çektik $body = $_POST['mesaj']; //formdan gelen mesaj içeriğini çektik $mail->IsSMTP(); //smtp ile gönderilecek
        $mail->Host = "mail.site.com"; //sitenin smtp email sunucusu
        $mail->SMTPAuth = true; //email sunucusunun oturum açma özelliği
        $mail->Port = 587; //sitenin smtp email portu
        $mail->Username = "info@site.com"; //email adresimiz/kullanıcı adımız
        $mail->Password = "123456"; //mail şifremiz
        $mail->CharSet = 'UTF-8'; //Karakter kodlamamız
        $mail->SetFrom('info@site.com','Kemal Sunal'); //email adresimiz ve adımız/giden emaillerde gözükecek
        $mail->Subject = $baslik; //mesaj başlığını emaillere ekledik
        $query = "SELECT nick,mail FROM mailtest"; //veritabanından emailleri çekme sorgumuz
        $result = @MYSQL_QUERY($query); //veritabanından emailleri çektik
        while ($row = mysql_fetch_array ($result)) { //döngüye sokuyoruz ki teker teker göndereceğiz.
                $mail->MsgHTML($body); //email içeriğini ekledik
                $mail->AddReplyTo($row["mail"], $row["nick"]); //gönderilecek email adresi ve adı
                $mail->AddAddress($row["mail"], $row["nick"]); //gönderilecek emailler burada ekliyoruz. Her döngüde değişecek otomatik
                if(!$mail->Send()) { //gönderilemedi ise
                        echo "<strong>PhpMailer hatası (" . str_replace("@", "&#64;", $row["mail"]) . ') ' . $mail->ErrorInfo . '</strong>';
                } else { //gönderildi ise
                        echo "<strong style='color:green;'>Gönderildi :" . $row["nick"] . ' (' . str_replace("@", "&#64;", $row["mail"]) . ')</strong>';
                }
                $mail->ClearAddresses(); // her döngüde email adresini temizliyoruz ki arkasından başka ekleyebilelim
        }
}
?>

 

Ve hepsi bu kadar. Mantığı anladığınıza göre veritabanı yapısını anlatmaya gerek duymuyorum. Selâmetle.

Yorum Yap

alanya kanalizasyon açma alanya tıkanıklık açma alanya tuvalet açma