شنبه ۱ دی ۱۴۰۳ |  عضویت / ورود

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


Thursday, 2011 April 21   نویسنده: Hamid   تعداد بازدید: 13806 بار  #آموزش 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 بگذارد.

همین!

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

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

 


.



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


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


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


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

Tutorials ©