آموزش اتچ (ضمیمه) کردن یک فایل به ایمیل در پی.اچ.پی (How to attach a file in PHP)
Thursday, 2011 April 21
نویسنده:
Hamid
تعداد بازدید: 13931 بار
#آموزش PHP
امتیاز متوسط: امتیازی داده نشده است
تصور کنید قرار است یک فایل را از کاربر (از طریق یک فرم) بگیریم و به ایمیل صاحب سایت ارسال کنیم.
پیش از هر چیز شما باید بدانید چطور یک فرم دریافت فایل بسازید و چطور یک فایل را بر روی سرور آپلود کنید. اگر در این زمینه مشکل دارید، آموزش زیر را مشاهده کنید:
آموزش آپلود فایل از طریق یک فرم در پی.اچ.پی (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 بگذارد.
همین!
بقیه موارد نیازی به تغییر ندارد.
موفق باشید؛
حمید رضا نیرومند
.
- مطالب مرتبط:
- چگونه گزینه های انتخاب شده یک CheckBox را با کمک inputهای hidden به صفحه سوم منتقل کنیم؟
- در آمدی بر زبان PHP
- نوشتن بر روی عکس با GD در PHP
- آموزش نمایش تاریخ هجری شمسی با استفاده از PHP در صفحات وب
- نکاتی در مورد کار با URL در پی.اچ.پی (Working with addresses in PHP)
- چگونه با PHP از اطلاعات دیتابیس خروجی csv بگیریم که کاراکترها درست نمایش داده شوند؟
- ------------
- مباحث حرفهای تغییر basedir در include کردن در زبان PHP و همینطور href در HTML
- چگونه فایلها و پوشههای خصوصی را مخفی کنید (How to hide files and folders)
- آموزش غیرفعال کردن آپدیت خودکار ویندوز ۱۰ (How to disable update in windows 10)
- بهترین روش ترکیب چند شرط اختیاری در WHERE در MySQL مبتنی بر PHP
- آیا فایل Autorun.inf همیشه یک ویروس است؟
ارسال سؤال یا نظر
1- علی:
بوسیله: , در: Monday, 2012 November 12-کد: 5318
اشغال بود
2- shiba:
بوسیله: , در: Friday, 2013 December 20-کد: 8858
هیچی نفهمیدم میگم من الان میخوام داشته باشم ولی نمیدونم چه جوری لطفا راهنماییم کنید لطفا:$
3- shiba:
بوسیله: , در: Friday, 2013 December 20-کد: 8859
هیچی نفهمیدم میگم من الان میخوام داشته باشم ولی نمیدونم چه جوری لطفا راهنماییم کنید لطفا:$