ارسال ایمیل همراه با فایل ضمیمه به وسیله PHP

شهریور ۲۴, ۱۳۹۱ توسط : سعید

سلام
بعد از چند وقت دوباره برگشتم و به امید خدا سعی میکنم از این به بعد بیشتر به سایت سر بزنم.
در این قسمت براتون یک تابع رو معرفی میکنم که خواهید دید چطور میشه با پی اچ پی ایمیل رو به همراه فایل ضمیمه ارسال کرد.

تابع زیر این کار رو برای شما انجام میده :

function mail_attachment($filename, $path, $mailto, $from_mail, $from_name,  $subject, $message) {
	$file = $path.$filename;
	$file_size = filesize($file);
	$handle = fopen($file, "r");
	$content = fread($handle, $file_size);
	fclose($handle);
	$content = chunk_split(base64_encode($content));
	$uid = md5(uniqid(time()));
	$name = basename($file);
	$header = "From: ".$from_name." <".$from_mail.">\r\n";
	$header .= "Reply-To: ".$from_mail."\r\n";
	$header .= "MIME-Version: 1.0\r\n";
	$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
	$header .= "This is a multi-part message in MIME format.\r\n";
	$header .= "--".$uid."\r\n";
	$header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
	$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
	$header .= $message."\r\n\r\n";
	$header .= "--".$uid."\r\n";
	$header .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"; // use different content types here
	$header .= "Content-Transfer-Encoding: base64\r\n";
	$header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
	$header .= $content."\r\n\r\n";
	$header .= "--".$uid."--";
	if (mail($mailto, $subject, "", $header)) {
		echo "mail send ... OK"; // or use booleans here
	} else {
		echo "mail send ... ERROR!";
	}
}

برای استفاده از این تابع به صورت زیر عمل میکنیم :

$my_file = "file1.pdf";
$my_path = $_SERVER['DOCUMENT_ROOT']."/myfiles/";
$my_name = "raj";
$my_mail = "info@domain.com";
$my_subject = "Email Subject ";
$my_message = "Refer the attached file.";
$to_email="to@domain.com";
 
mail_attachment($my_file, $my_path, $to_email, $my_mail, $my_name, $my_subject, $my_message);

منبع :
http://learnwebdevelopment.info

بازدید : ۴۹۷۸

شهریور ۲۵, ۱۳۹۱ @ ۱:۵۰ ب.ظ

مرسی خیلی مفید بود

پاسخ دادن
حسین صوفی
آبان ۲۷, ۱۳۹۱ @ ۱۱:۱۰ ق.ظ

سلام خسته نباشی ،من تازگی php شروع کردم نمی دانم
از کجا شروع کنم تا به سطح حرفی برسم.ممنوع میشم کمکی کنی.

پاسخ دادن
آبان ۲۷, ۱۳۹۲ @ ۱:۱۱ ب.ظ

سلام
من که از این کد ها استفاده کردم ایمیل ارسال میشه اما سایز فایل دریافت شده در جی میل خودم (که ارسال رو به اون انجام میدم) صفر هست. مشکل از کجاست؟
این قسمت دقیقا کارش چیه:
$my_path = $_SERVER[‘DOCUMENT_ROOT’].”/myfiles/”;
با سپاس قبلی.

پاسخ دادن
    سعید
    دی ۲, ۱۳۹۲ @ ۱:۱۶ ب.ظ

    سلام
    خطی که نوشتید مسیر مستقیم فایل رو مشخص میکنه. مطمئن بشید که مسیر فایلی که میخواین ایمیل کنید رو درست وارد میکنید.

    پاسخ دادن

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


*