تصور کنید قرار است یک فایل را از کاربر (از طریق یک فرم) بگیریم و به ایمیل صاحب سایت ارسال کنیم.
پیش از هر چیز شما باید بدانید چطور یک فرم دریافت فایل بسازید و چطور یک فایل را بر روی سرور آپلود کنید. اگر در این زمینه مشکل دارید، آموزش زیر را مشاهده کنید:
آموزش آپلود فایل از طریق یک فرم در پی.اچ.پی (How to upload a file in PHP)
بعد از اینکه فایل، آپلود شد، حالا قطعه کد زیر، آن فایل را که مثلاً در پوشه جاری و به نام test.pdf است خوانده و به ایمیل شما ارسال میکند. به کد دقت کنید:
<?php // Email Information $name = "Name goes here"; $email = "someome@anadress.com"; $to = "$name <$email>"; $from = "John-Smith "; $subject = "Here is your attachment"; // File Loation $fileatt = "./test.pdf"; $fileatttype = "application/pdf"; $fileattname = "newname.pdf"; // Reading File Data $file = fopen($fileatt, 'rb'); $data = fread($file, filesize($fileatt)); fclose($file); $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; // building header $headers = "From: $from"; $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; $message = "This is a multi-part message in MIME format.\n\n" . "-{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message .= "\n\n"; $data = chunk_split(base64_encode($data)); $message .= "–{$mime_boundary}\n" . "Content-Type: {$fileatttype};\n" . " name=\"{$fileattname}\"\n" . "Content-Disposition: attachment;\n" . " filename=\"{$fileattname}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n" . "-{$mime_boundary}-\n"; if(mail($to, $subject, $message, $headers)) { echo "The email was sent."; } else { echo "There was an error sending the mail."; } ?>
کد، کاملا واضح است.
اطلاعات ایمیل را در بخش Email Information واردکنید.
آدرس فایل مورد نظر را به جای test.pdf بگذارد.
همین!
بقیه موارد نیازی به تغییر ندارد.
موفق باشید؛
حمید رضا نیرومند