یك شنبه 17 آذر 1398 |  عضویت / ورود






[ بخش اصلی آموزشها | افزودن آموزش | داری بیشترین امتیاز | دارای بیشترین بیننده | جدیدترین نظرات ]

آموزش اتچ (ضمیمه) کردن یک فایل به ایمیل در پی.اچ.پی (How to attach a file in PHP)



این آموزش مربوط است به موضوع آموزش PHP‏ که توسط Hamid در تاریخ: Friday, 2011 April 22 ارسال شده است.   |   تعداد بازدید: 11187 بار   |   امتیاز متوسط: امتیازی داده نشده است


-------------------

تصور کنید قرار است یک فایل را از کاربر (از طریق یک فرم) بگیریم و به ایمیل صاحب سایت ارسال کنیم.

پیش از هر چیز شما باید بدانید چطور یک فرم دریافت فایل بسازید و چطور یک فایل را بر روی سرور آپلود کنید. اگر در این زمینه مشکل دارید، آموزش زیر را مشاهده کنید:

 آموزش آپلود فایل از طریق یک فرم در پی.اچ.پی (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 بگذارد.

همین!

بقیه موارد نیازی به تغییر ندارد.

موفق باشید؛
حمید رضا نیرومند

 





ارسال سؤال یا نظر


1- علی:
بوسیله: , در: Monday, 2012 November 12-کد: 5318
اشغال بود


2- shiba:
بوسیله: , در: Friday, 2013 December 20-کد: 8858
هیچی نفهمیدم میگم من الان میخوام داشته باشم ولی نمیدونم چه جوری لطفا راهنماییم کنید لطفا:$


3- shiba:
بوسیله: , در: Friday, 2013 December 20-کد: 8859
هیچی نفهمیدم میگم من الان میخوام داشته باشم ولی نمیدونم چه جوری لطفا راهنماییم کنید لطفا:$

Tutorials ©