PHP - Mengirim Email menggunakan PHP

PHP harus dikonfigurasi dengan benar di php.inifile dengan detail bagaimana sistem Anda mengirim email. Buka file php.ini yang tersedia di/etc/ direktori dan temukan bagian menuju [mail function].

Pengguna Windows harus memastikan bahwa dua arahan disediakan. Yang pertama disebut SMTP yang menentukan alamat server email Anda. Yang kedua disebut sendmail_from yang menentukan alamat email Anda sendiri.

Konfigurasi untuk Windows akan terlihat seperti ini -

[mail function]
; For Win32 only.
SMTP = smtp.secureserver.net

; For win32 only
sendmail_from = [email protected]

Pengguna Linux hanya perlu memberi tahu PHP lokasi mereka sendmailaplikasi. Jalur dan sakelar apa pun yang diinginkan harus ditetapkan ke direktif sendmail_path.

Konfigurasi untuk Linux akan terlihat seperti ini -

[mail function]
; For Win32 only.
SMTP = 

; For win32 only
sendmail_from = 

; For Unix only
sendmail_path = /usr/sbin/sendmail -t -i

Sekarang Anda siap untuk pergi -

Mengirim email teks biasa

PHP memanfaatkan mail()berfungsi untuk mengirim email. Fungsi ini membutuhkan tiga argumen wajib yang menentukan alamat email penerima, subjek pesan dan pesan sebenarnya selain itu ada dua parameter opsional lainnya.

mail( to, subject, message, headers, parameters );

Berikut adalah uraian untuk setiap parameter.

Sr Tidak Parameter & Deskripsi
1

to

Yg dibutuhkan. Menentukan penerima / penerima email

2

subject

Yg dibutuhkan. Menentukan subjek email. Parameter ini tidak boleh berisi karakter baris baru

3

message

Yg dibutuhkan. Mendefinisikan pesan yang akan dikirim. Setiap baris harus dipisahkan dengan LF (\ n). Garis tidak boleh lebih dari 70 karakter

4

headers

Pilihan. Menentukan header tambahan, seperti From, Cc, dan Bcc. Header tambahan harus dipisahkan dengan CRLF (\ r \ n)

5

parameters

Pilihan. Menentukan parameter tambahan untuk program kirim email

Segera setelah fungsi mail dipanggil PHP akan mencoba mengirim email kemudian akan mengembalikan nilai true jika berhasil atau salah jika gagal.

Beberapa penerima dapat ditentukan sebagai argumen pertama untuk fungsi mail () dalam daftar yang dipisahkan koma.

Mengirim email HTML

Ketika Anda mengirim pesan teks menggunakan PHP maka semua konten akan diperlakukan sebagai teks sederhana. Meskipun Anda akan menyertakan tag HTML dalam pesan teks, itu akan ditampilkan sebagai teks sederhana dan tag HTML tidak akan diformat sesuai dengan sintaks HTML. Tetapi PHP menyediakan opsi untuk mengirim pesan HTML sebagai pesan HTML yang sebenarnya.

Saat mengirim pesan email Anda dapat menentukan versi pantomim, tipe konten dan set karakter untuk mengirim email HTML.

Contoh

Contoh berikut akan mengirim pesan email HTML ke [email protected] menyalinnya ke [email protected]. Anda dapat membuat kode program ini sedemikian rupa sehingga harus menerima semua konten dari pengguna dan kemudian harus mengirim email.

<html>
   
   <head>
      <title>Sending HTML email using PHP</title>
   </head>
   
   <body>
      
      <?php
         $to = "[email protected]";
         $subject = "This is subject";
         
         $message = "<b>This is HTML message.</b>";
         $message .= "<h1>This is headline.</h1>";
         
         $header = "From:[email protected] \r\n";
         $header .= "Cc:[email protected] \r\n";
         $header .= "MIME-Version: 1.0\r\n";
         $header .= "Content-type: text/html\r\n";
         
         $retval = mail ($to,$subject,$message,$header);
         
         if( $retval == true ) {
            echo "Message sent successfully...";
         }else {
            echo "Message could not be sent...";
         }
      ?>
      
   </body>
</html>

Mengirim lampiran dengan email

Untuk mengirim email dengan konten campuran perlu diatur Content-type tajuk ke multipart/mixed. Kemudian teks dan bagian lampiran dapat ditentukan di dalamnyaboundaries.

Batas dimulai dengan dua tanda hubung diikuti dengan nomor unik yang tidak dapat muncul di bagian pesan email. Fungsi PHPmd5()digunakan untuk membuat 32 digit angka heksadesimal untuk membuat angka unik. Batas akhir yang menunjukkan bagian akhir email juga harus diakhiri dengan dua tanda hubung.

<?php
   // request variables // important
   $from = $_REQUEST["from"];
   $emaila = $_REQUEST["emaila"];
   $filea = $_REQUEST["filea"];
   
   if ($filea) {
      function mail_attachment ($from , $to, $subject, $message, $attachment){
         $fileatt = $attachment; // Path to the file
         $fileatt_type = "application/octet-stream"; // File Type 
         
         $start = strrpos($attachment, '/') == -1 ? 
            strrpos($attachment, '//') : strrpos($attachment, '/')+1;
				
         $fileatt_name = substr($attachment, $start, 
            strlen($attachment)); // Filename that will be used for the 
            file as the attachment 
         
         $email_from = $from; // Who the email is from
         $subject = "New Attachment Message";
         
         $email_subject =  $subject; // The Subject of the email 
         $email_txt = $message; // Message that the email has in it 
         $email_to = $to; // Who the email is to
         
         $headers = "From: ".$email_from;
         $file = fopen($fileatt,'rb'); 
         $data = fread($file,filesize($fileatt)); 
         fclose($file); 
         
         $msg_txt="\n\n You have recieved a new attachment message from $from";
         $semi_rand = md5(time()); 
         $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 
         $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . "
            boundary=\"{$mime_boundary}\"";
         
         $email_txt .= $msg_txt;
			
         $email_message .= "This is a multi-part message in MIME format.\n\n" . 
            "--{$mime_boundary}\n" . "Content-Type:text/html; 
            charset = \"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . 
            $email_txt . "\n\n";
				
         $data = chunk_split(base64_encode($data));
         
         $email_message .= "--{$mime_boundary}\n" . "Content-Type: {$fileatt_type};\n" .
            " name = \"{$fileatt_name}\"\n" . //"Content-Disposition: attachment;\n" . 
            //" filename = \"{$fileatt_name}\"\n" . "Content-Transfer-Encoding: 
            base64\n\n" . $data . "\n\n" . "--{$mime_boundary}--\n";
				
         $ok = mail($email_to, $email_subject, $email_message, $headers);
         
         if($ok) {
            echo "File Sent Successfully.";
            unlink($attachment); // delete a file after attachment sent.
         }else {
            die("Sorry but the email could not be sent. Please go back and try again!");
         }
      }
      move_uploaded_file($_FILES["filea"]["tmp_name"],
         'temp/'.basename($_FILES['filea']['name']));
			
      mail_attachment("$from", "[email protected]", 
         "subject", "message", ("temp/".$_FILES["filea"]["name"]));
   }
?>

<html>
   <head>
      
      <script language = "javascript" type = "text/javascript">
         function CheckData45() {
            with(document.filepost) {
               if(filea.value ! = "") {
                  document.getElementById('one').innerText = 
                     "Attaching File ... Please Wait";
               }
            }
         }
      </script>
      
   </head>
   <body>
      
      <table width = "100%" height = "100%" border = "0" 
         cellpadding = "0" cellspacing = "0">
         <tr>
            <td align = "center">
               <form name = "filepost" method = "post" 
                  action = "file.php" enctype = "multipart/form-data" id = "file">
                  
                  <table width = "300" border = "0" cellspacing = "0" 
                     cellpadding = "0">
							
                     <tr valign = "bottom">
                        <td height = "20">Your Name:</td>
                     </tr>
                     
                     <tr>
                        <td><input name = "from" type = "text" 
                           id = "from" size = "30"></td>
                     </tr>
                     
                     <tr valign = "bottom">
                        <td height = "20">Your Email Address:</td>
                     </tr>
                     
                     <tr>
                        <td class = "frmtxt2"><input name = "emaila"
                           type = "text" id = "emaila" size = "30"></td>
                     </tr>
                     
                     <tr>
                        <td height = "20" valign = "bottom">Attach File:</td>
                     </tr>
                     
                     <tr valign = "bottom">
                        <td valign = "bottom"><input name = "filea" 
                           type = "file" id = "filea" size = "16"></td>
                     </tr>
                     
                     <tr>
                        <td height = "40" valign = "middle"><input 
                           name = "Reset2" type = "reset" id = "Reset2" value = "Reset">
                        <input name = "Submit2" type = "submit" 
                           value = "Submit" onClick = "return CheckData45()"></td>
                     </tr>
                  </table>
                  
               </form>
               
               <center>
                  <table width = "400">
                     
                     <tr>
                        <td id = "one">
                        </td>
                     </tr>
                     
                  </table>
               </center>
               
            </td>
         </tr>
      </table>
      
   </body>
</html>