BBL‍UE DROIDPLUSS
Rabu, 09 Maret 2011

Php script pengirim email dengan banyak file attachment

langsung aja yah, tahap awal kita buat form untuk mengirim filenya. Kita fokuskan pada form input filenya saja, jika ingin menambahkan input text pada form silakan saja di modifikasi sendiri.
buka text editor anda, lalu buat contoh simple form sebagai berikut
1<form action="sending.php" enctype="multipart/form-data" method="post">
2<input name="attachment1" type="file">
3<input name="attachment2" type="file">
4<input value="submit" type="submit">
5</form>
jika ingin menambahkan form input file tinggal buat :
1<input name="attachment3" type="file">
sesuai keperluan saja, sejauh ini saya coba 3 file attachment ok ok aja..
kemudian save terserah mau dikasih nama apa aja, form_email.php juga ok.
lalu selanjutnya kita buat file php untuk mengesekusinya ( syeet dah bahasanya, kaya apa aja :D )
ketik script berikut di text editor baru, kemudian save deangan nama file sending.php
01
02// dimulai degan memasukan email penerima dan subject email
03$to = "email_penerima@blabla.com"
04$subject="[ Email Attachment]";
05// masukan nama dan email pengirim
06$from = stripslashes('NAMA PENGIRIM')."<".stripslashes('email_pngrm@blabla.com').">";
07// membuat sting acak yang akan di gunakan sebagai bundary
08$mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x";
09// sekarang saatnya membuat kepala surat/ message headers
10$headers = "From: $from\r\n" .
11"MIME-Version: 1.0\r\n" .
12"Content-Type: multipart/mixed;\r\n" .
13" boundary=\"{$mime_boundary}\"";
14// ini untuk membuat isi email berupa text.
15// hanya text yang akan ditampilkan
16$message="Tulis isi email anda disini";
17// format MIME boundary yang digunakan
18$message = "This is a multi-part message in MIME format.\n\n" .
19"--{$mime_boundary}\n" .
20"Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
21"Content-Transfer-Encoding: 7bit\n\n" .
22$message . "\n\n";
23// ini proses upload file yang akan menjadi attachment email
24// semua variable $_POST[attachmen] diganti menjadi variable $userfile
25foreach($_FILES as $userfile){
26$tmp_name = $userfile['tmp_name'];
27$type = $userfile['type'];
28$name = $userfile['name'];
29$size = $userfile['size'];
30// jika upload sukses, file akan ada di temporary host
31if (file_exists($tmp_name)){
32if(is_uploaded_file($tmp_name)){
33// membuka file untuk di konversi ke rb (binary read)
34$file = fopen($tmp_name,'rb');
35//menjadikan suatu variable data
36$data = fread($file,filesize($tmp_name));
37// menutup file
38fclose($file);
39// nah ini proses yang paling penting meng'encode' variable data tesebut
40$data = chunk_split(base64_encode($data));
41}
42$message .= "--{$mime_boundary}\n" .
43"Content-Type: {$type};\n" .
44" name=\"{$name}\"\n" .
45"Content-Disposition: attachment;\n" .
46" filename=\"{$fileatt_name}\"\n" .
47"Content-Transfer-Encoding: base64\n\n" .
48$data . "\n\n";
49}
50}
51// penutup mime boundary
52$message.="--{$mime_boundary}--\n";
53// esekusi pengiriman pesan
54if (@mail($to, $subject, $message, $headers))
55echo "Document Telah Berhasil Dikirim.";
56else echo "Gagal Mengirim";
57?>
saatnya mencoba, upload terlebih dahulu, karna kalau dilocalhost ga jalan.
Semoga berhasil….