ahmadajah03 Fri Apr 2020 1 year ago

Mengirim Email Ke Banyak Penerima dengan PHP dan Mysqli

Pada tutorial kita akan membuat cara mengirim email dengan php dan mysqli ke banyak atau lebih dari satu penerima. Fasilitas pengiriman email pada suatu website memang sangat diperlukan. Dengan adanya aplikasi ini kita bisa mendapatkan notifikasi dari website melalui email.

Tidak hanya mengirim ke satu tujuan, dengan PHP kita bisa mengirim pesan ke banyak email sekaligus. Contoh misalkan kita memiliki website toko online, nah dengan adanya fasilitas sending email, member yang berlangganan dengan website toko online tersebut bisa mendapatkan pemberitahuan apabila terdapat barang yang baru.

Pada kesempatan ini saya menulis sebuah tutorial mengirim multiple email dari database.
Pertama siapkan dahulu database dengan nama “email”. Kemudian buat table dengan nama “email” untuk menyimpan data Emailnya, buat saja 1 field dengan nama “email” juga. Setelah itu kita masukkan beberapa data pada table “email”.

Setelah selesai menyiapkan database, sekarang kita buat form untuk mengirim Email.

<?php
$koneksi = mysqli_connect("localhost", "root", "","email") or die ("Koneksi gagal");
$select = mysqli_query($koneksi, "SELECT * FROM email");
$data_r = "";
while ($row=mysqli_fetch_array($select)){
     $rows[] = $row['email'];
}

foreach($rows as $key=>$r)
{
    if($key==0){$data_r .= $r;}
  else{ $data_r .= ", ".$r; }
}
?>
<form action="index.php" method="post">
  <input type="hidden" name="send" />
  <div class="row">
        <label>Nama</label>
      <input type="text" name="nama" />
    </div>
  <div class="row">
        <label>To</label>
      <textarea name="to"><?= $data_r; ?></textarea>
    </div>
  <div class="row">
        <label>Subject</label>
      <input type="text" name="subject" />
    </div>
  <div class="row">
      <textarea name="messages" rows="7"></textarea>
    </div>
  <div class="row">
        <button>Kirim</button>
    </div>
</form>

<?php

if(isset($_POST['send']))
{
   $nama = $_POST['nama'];
   $to = $_POST['to'];
   $subject = $_POST['subject'];
   $messages = "From :".$nama."<br> ".$_POST['messages'];
   
   $headers = "MIME-Version: 1.0" . "rn";
   $headers .= "Content-type:text/html;charset=iso-8859-1" . "rn";
    // More headers
   $headers .= 'From: <[email protected]>' . "rn";
   $headers .= 'Cc: [email protected]' . "rn";
   
    @mail($to, $subject, $messages, $headers);
    if(@mail)
    {
       echo "pengiriman berhasil";
    }
    else
    {
       echo "pengiriman gagal";
    }
}
?>

Seperti yang terlihat pada script form diatas saya mengambil email dari database yang sudah kita siapkan sebelumnya. Sedikit saya jelaskan, pada bagian

while ($row=mysqli_fetch_array($select)){
      $rows[] = $row['email'];
}

saya menjadikan data email dari database tersebut menjadi array, sehingga berbentuk array seperti array([0]=>email1@domain .com[1]=>[email protected])

Setelah dijadikan array, pada bagian

foreach($rows as $key=>$r)
{
    if($key==0){$data_r .= $r;}
   else{ $data_r .= ", ".$r; }
}

saya membuat array tersebut menjadi sebuah string agar bisa digunakan untuk tujuan pengiriman emailnya. Sehingga kita mendapatkan string seperti :
$data_r = "[email protected],[email protected]";

Maka dengan begitu variable $to pada proses memiliki email lebih dari satu yang dipisahkan tanda koma ",". Untuk mengirim email ke tujuan yang lebih dari satu, alamat email yang banyak tersebut harus dipisahkan dengan tanda koma ","

Aplikasi yang sederhana seperti ini sangat berguna. Ini adalah dasar – dasar untuk membuat fasilitas pengiriman email ganda. Selamat mencoba.

multiple send email php