Type something and hit enter

By On
advertise here

Dalam tutorial ini, kita akan belajar tentang mengirim email dengan banyak lampiran. Kami akan menggunakan PHPMailer. File lampiran dipilih dan dilampirkan ke email melalui formulir HTML. Saya telah menggunakan jQuery AJAX untuk memanggil skrip mail dengan memposting data email dengan lampiran. Jika Anda mencari email dengan lampiran tunggal, lihat tutorial saya sebelumnya, cara mengirim email dengan menggunakan kelas PHPMailer .
pin-banyak-foto
Dalam contoh ini, saya telah membuat formulir HTML yang berisi bidang masukan untuk Nama Pengirim , Email , Subjek , Konten , dan File untuk dilampirkan. Dalam formulir ini, bidang input file diatur dengan atribut "multiple" untuk memungkinkan memilih lebih dari satu file untuk lampiran email. File yang dipilih dalam array global $ _FILES diulang dan dilampirkan ke email dengan menggunakan objek PHPMailer. Sebelumnya, kami telah melihat contoh pengiriman email kontak dengan satu lampiran .

Memilih Beberapa Lampiran menggunakan Formulir HTML

Formulir HTML berikut berisi bidang masukan untuk memasukkan data email seperti nama dan email pengirim, subjek dan konten isi. Ini juga berisi input file untuk memilih lebih dari satu file dengan mengaktifkan properti "multiple".
  <form id = "frmEnquiry" action = "" method = "post" enctype = 'multipart / form-data'>
     <div id = "mail-status"> </ div>
     <div>
         <masukan
             type = "text" name = "userName" id = "userName"
             class = "demoInputBox" placeholder = "Nama">
     </ div>
     <div>
         <input type = "text" name = "userEmail" id = "userEmail"
             class = "demoInputBox" placeholder = "Email">
     </ div>
     <div>
         <input type = "text" name = "subject" id = "subjek"
             class = "demoInputBox" placeholder = "Subjek">
     </ div>
     <div>
         <textarea name = "content" id = "konten" class = "demoInputBox"
             cols = "60" rows = "6" placeholder = "Konten"> </ textarea>
     </ div>
     <div>
         <label> Lampiran </ label> <br /> <input type = "file"
             name = "attachment []" class = "demoInputBox" multiple = "multiple">
     </ div>
     <div>
         <input type = "submit" value = "Kirim" class = "btnAction" />
     </ div>
 </ form>

Memposting Data Formulir via jQuery AJAX

Saat mengirimkan formulir, nilai bidang input yang dimasukkan oleh pengguna divalidasi menggunakan jQuery. Jika semua bidang divalidasi dan fungsi validasi mengembalikan nilai true, maka panggilan AJAX akan dihasilkan untuk meminta skrip pengiriman email. Setelah mengeksekusi skrip mail, blok respons AJAX akan memperbarui UI untuk mengakui pengguna tentang status email yang dikirim.
  <script src = "jquery-3.2.1.min.js" ketik = "text / javascript"> </ script>
 <jenis skrip = "teks / javascript">
 $ (document) .ready (function (e) {
 $ ("# frmEnquiry"). pada ('submit', (function (e) {
  e.preventDefault ();
  $ ('# loader-icon'). show ();
  var valid; 
  valid = validateContact ();
  jika (valid) {
   $ .ajax ({
   url: "mail-send.php",
   ketik: "POST",
   data: FormData baru (ini),
   contentType: false,
   cache: salah,
   processData: salah,
   success: function (data) {
   $ ("# mail-status") .html (data);
   $ ('# loader-icon'). hide ();
   },
   error: function () {}          
  
   });
  }
 }));

 function validateContact () {
  var valid = true; 
  $ (". demoInputBox"). css ('background-color', '');
  $ (". info"). html ('');
  $ ("# userName"). removeClass ("invalid");
  $ ("# userEmail"). removeClass ("invalid");
  $ ("# subject"). removeClass ("invalid");
  $ ("# content"). removeClass ("invalid");
 
  if (! $ ("# userName"). val ()) {
   $ ("# userName"). addClass ("invalid");
         $ ("# userName"). attr ("title", "Required");
         valid = false;
  }
     if (! $ ("# userEmail"). val ()) {
         $ ("# userEmail"). addClass ("invalid");
         $ ("# userEmail"). attr ("title", "Required");
         valid = false;
     }
     if (! $ ("# userEmail"). val (). cocok (/ ^ ([\ w - \.] + @ ([\ w -] + \.) + [\ w -] {2,4} )? $ /)) {
         $ ("# userEmail"). addClass ("invalid");
         $ ("# userEmail"). attr ("title", "Email Tidak Sah");
         valid = false;
     }
  if (! $ ("# subject"). val ()) {
   $ ("# subject"). addClass ("invalid");
         $ ("# subject"). attr ("title", "Required");
   valid = false;
  }
  if (! $ ("# content"). val ()) {
   $ ("# content"). addClass ("invalid");
         $ ("# content"). attr ("title", "Required");
   valid = false;
  }
 
  kembali valid;
 }

 });
 </ script>

Kode PHP untuk Melampirkan Beberapa File ke EMail

Dalam kode PHP ini, ia menciptakan objek surat untuk kelas PHPMailer.Dengan menggunakan objek ini, opsi email diatur sebelum memanggil fungsi kirim.
Beberapa file yang diposting melalui form HTML akan dibaca dengan menggunakan variabel array $ _FILES. Array ini diulang file yang bersangkutan akan dilampirkan dengan memanggil fungsi addAttachment () dengan referensi objek surat.
  <? php
 require ('phpmailer / class.phpmailer.php');

 $ mail = PHPMailer baru ();
 $ mail-> IsSMTP ();
 $ mail-> SMTPDebug = 0;
 $ mail-> SMTPAuth = TRUE;
 $ mail-> SMTPSecure = "ssl";
 $ mail-> Port = 465;  
 $ mail-> Nama Pengguna = "USER_NAME ANDA";
 $ mail-> Sandi = "PASSWORD ANDA";
 $ mail-> Host = "HOST ANDA";
 $ mail-> Mailer = "smtp";
 $ mail-> SetFrom ($ _ POST ["userEmail"], $ _POST ["userName"]);
 $ mail-> AddReplyTo ($ _ POST ["userEmail"], $ _POST ["userName"]);
 $ mail-> AddAddress ("RECIPIENT_EMAIL"); 
 $ mail-> Subject = $ _POST ["subject"];
 $ mail-> WordWrap = 80;
 $ mail-> MsgHTML ($ _ POST ["content"]);

 foreach ($ _FILES ["attachment"] ["name"] sebagai $ k => $ v) {
     $ mail-> AddAttachment ($ _FILES ["attachment"] ["tmp_name"] [$ k], $ _FILES ["attachment"] ["name"] [$ k]);
 }

 $ mail-> IsHTML (true);

 if (! $ mail-> Send ()) {
  echo "<p class = 'error'> Masalah dalam Mengirim Surat. </ p>";
 } lain {
  echo "<p class = 'success'> Mail Terkirim. </ p>";
 } 
 ?>

Formulir HTML dengan Beberapa Lampiran File Lampiran

Screenshot berikut menunjukkan bentuk HTML dengan data email yang telah terisi sebelumnya dan input file yang menunjukkan hitungan dari beberapa file lampiran.
form-dengan-banyak-file-input
Tutorial kode PHP ini diterbitkan pada 19 Desember 2017



Click to comment