امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
اسکریپت ارسال فایل با ایمیل
نویسنده پیام
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,499
موضوع‌ها: 271
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1654
( 3939 تشکر در 1454 ارسال )
ارسال: #1
اسکریپت ارسال فایل با ایمیل
با سلام
دوستان من میخوام با PHP ایمیل بفرستم با ارسال ایمیل مشکلی ندارم ولی میخوام 1فایل هم اتچ کنه و همراه ایمیل ارسال کنه!

ممنون میشم راهنمایی کنید

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي شادی − بهینه شده برای ورژن جدید
  
۱۹-تير-۱۳۹۰, ۱۷:۰۸:۴۶
وب سایت ارسال‌ها
پاسخ
armin_b00ter آفلاین
كاربر تک ستاره
*

ارسال‌ها: 26
موضوع‌ها: 7
تاریخ عضویت: فروردین ۱۳۸۴

تشکرها : 0
( 1 تشکر در 1 ارسال )
ارسال: #2
RE: اسکریپت ارسال فایل با ایمیل
می تونی از کلاس پایین استفاده کنی.

کد php:
class AttachmentEmail {

private 
$from 'yours@email.com';

private 
$from_name 'Your Name';

private 
$reply_to 'yours@email.com';

private 
$to '';

private 
$subject '';

private 
$message '';

private 
$attachment '';

private 
$attachment_filename '';


public function 
__construct($to$subject$message$attachment ''$attachment_filename '') {


$this -> to $to;


$this -> subject $subject;


$this -> message $message;


$this -> attachment $attachment;


$this -> attachment_filename $attachment_filename;

}


public function 
mail() {


if (!empty(
$this -> attachment)) {



$filename = empty($this -> attachment_filename) ? basename($this -> attachment) : $this -> attachment_filename ;



$path dirname($this -> attachment);



$mailto $this -> to;



$from_mail $this -> from;



$from_name $this -> from_name;



$replyto $this -> reply_to;



$subject $this -> subject;



$message $this -> 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: ".$replyto."\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 diff. tyoes 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)) {




return 
true;



} else {




return 
false;



}


} else {



$header "From: ".($this -> from_name)." <".($this -> from).">\r\n";



$header .= "Reply-To: ".($this -> reply_to)."\r\n";




if (
mail($this -> to$this -> subject$this -> message$header)) {




return 
true;



} else {




return 
false;



}



}

}


نحوه ی استفاده :

کد php:
$sendit = new AttachmentEmail('marry@example.com''Merry Christmas!''Hi''/home/racker/gift.jpg');
$sendit -> mail(); 

من این کد رو به راحتی تو نت پیدا کردم.بهتره قبل از هر کاری تو گوگل سرچ کنی.این کد هیچ ربطی به php نداره.فقط باید بلد protocol میل رو واسه فرستادن فایل بلد باشی.موفق باشی ...

Trojan Is My Language
۲۹-تير-۱۳۹۰, ۰۳:۴۳:۱۴
ارسال‌ها
پاسخ
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,499
موضوع‌ها: 271
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1654
( 3939 تشکر در 1454 ارسال )
ارسال: #3
RE: اسکریپت ارسال فایل با ایمیل
دوست عزیز ممنون از راهنماییتون
مشکل من حل شد فقط یه مشکل کوچولو!
وقتی فایل را اتچ میکنم و ارسال میکنم زمان دانلود ارور میده فایل سیو میشه ولی باز نمیشه مثل اینکه فایل علکی ساخته بشه

فکر کنم مشکل از ادرس دهی زمان ارسال باشه چون وقتی من فایل را دریافت میکنم فقط اسم فایل میمونه ممنون میشم راهنمایی کنید

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي شادی − بهینه شده برای ورژن جدید
  
۳۰-تير-۱۳۹۰, ۱۵:۲۰:۵۷
وب سایت ارسال‌ها
پاسخ
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,499
موضوع‌ها: 271
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1654
( 3939 تشکر در 1454 ارسال )
ارسال: #4
RE: اسکریپت ارسال فایل با ایمیل
دوستان کسی راهنمایی نمی کنه؟

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي شادی − بهینه شده برای ورژن جدید
  
(آخرین ویرایش در این ارسال: ۰۲-مرداد-۱۳۹۰, ۰۰:۴۵:۵۷، توسط Ghoghnus.)
۰۲-مرداد-۱۳۹۰, ۰۰:۳۸:۰۲
وب سایت ارسال‌ها
پاسخ
babyy آفلاین
بازنشسته
*****

ارسال‌ها: 3,095
موضوع‌ها: 141
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 35081
( 26090 تشکر در 9068 ارسال )
ارسال: #5
RE: اسکریپت ارسال فایل با ایمیل
شاید بدون پسوند ذخیره شده !
از فایلت قبل از ارسال md5 بگیر بعدش هم دانلود کردی md5 بگیر
اگه مثل هم نبودن کد بالا مشکل داره
۰۵-مرداد-۱۳۹۰, ۱۲:۲۷:۲۷
وب سایت ارسال‌ها
پاسخ
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,499
موضوع‌ها: 271
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1654
( 3939 تشکر در 1454 ارسال )
ارسال: #6
RE: اسکریپت ارسال فایل با ایمیل
(۰۵-مرداد-۱۳۹۰, ۱۲:۲۷:۲۷)babyy نوشته است: شاید بدون پسوند ذخیره شده !
از فایلت قبل از ارسال md5 بگیر بعدش هم دانلود کردی md5 بگیر
اگه مثل هم نبودن کد بالا مشکل داره
ممنون دوست گلم که راهنمایی کردی!
من وقتی اطلاعات صفحه htmlرا به فایلphpارسال میکنم تمام داده را یک بار چک کردم!
قسمتی که مربوط به ادرس فایل اتچ بود فقط اسم فایل هستش!
اگه لازم میدونید تا هردو فایل را بزارم ببینیدشون؟

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي شادی − بهینه شده برای ورژن جدید
  
۰۵-مرداد-۱۳۹۰, ۱۴:۲۴:۰۴
وب سایت ارسال‌ها
پاسخ
babyy آفلاین
بازنشسته
*****

ارسال‌ها: 3,095
موضوع‌ها: 141
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 35081
( 26090 تشکر در 9068 ارسال )
ارسال: #7
RE: اسکریپت ارسال فایل با ایمیل
نمیدونم از چی میتونه باشه ؛
دوست دارین فایلها رو بزارید یه چک بکنیم
۰۵-مرداد-۱۳۹۰, ۱۴:۵۲:۴۴
وب سایت ارسال‌ها
پاسخ
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,499
موضوع‌ها: 271
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1654
( 3939 تشکر در 1454 ارسال )
ارسال: #8
RE: اسکریپت ارسال فایل با ایمیل
(۰۵-مرداد-۱۳۹۰, ۱۴:۵۲:۴۴)babyy نوشته است: نمیدونم از چی میتونه باشه ؛
دوست دارین فایلها رو بزارید یه چک بکنیم
این کد من!



فایل‌(های) پیوست شده
.rar   Downloads.rar (اندازه: 3.51 KB / تعداد دفعات دریافت: 48)

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي شادی − بهینه شده برای ورژن جدید
  
۰۸-مرداد-۱۳۹۰, ۱۹:۱۰:۰۵
وب سایت ارسال‌ها
پاسخ
PouriaAmid آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 272
موضوع‌ها: 15
تاریخ عضویت: شهریور ۱۳۸۳

تشکرها : 34
( 311 تشکر در 133 ارسال )
ارسال: #9
RE: اسکریپت ارسال فایل با ایمیل
راستش کدی که نوشتی خيلی بی نظم بود واسه همين خودم يه آموزش قدم به قدم نوشتم شايد به درد بخورهRolleyes

واسه فرستادن فايل با email بايد از MIME-Multipart-Message استفاده کنی.
Multipart-Message ميتونه شامل چندين بلوک با MIME-Type های مختلف باشه. واسه اينکه بلوک ها رو بشه از هم جدا کرد از يه String خاص يا همون "boundary" استفاده ميشه.

اول متغير های مورد نياز رو تعريف ميکنيم:
کد php:
$_to "your@mail.domain"// آدرس گيرنده
$_subject "what ever";   // عنوان
$_body "your free text"// متن email
$_file "test.jpg";  // فايل 
حالا بايد يه String خاص يا همون boundary رو تعريف کنيم.
حتماً نبايد از md5 استفاده کنيد، فقط مهم اينه که اين string خاص باشه و جای ديگه تکرار نشه
کد php:
$_splitter md5(uniqid(rand())); 

قدم بعدی تعريف header ميل

کد php:
$_header "MIME-Version: 1.0\n";
$_header.= "Content-Type: multipart/mixed; boundary = \"$_splitter\"\n"

خوب حالا توی header تعريف کرديم که بلوک های بعدی که ساخته ميشند رو با String تعريف شده از هم جدا ميکنيم.
اين String قبل و بعد از هر بلوک ساخته شده بايد وجود داشته باشه.
حالا ميتونيم بلوک ها رو تعريف کنيم.
بلوک اول تشکيل شده از متن email

کد php:
$_text.= "--".$_splitter."\n";
$_text.= "Content-Type: text/html; charset=\"utf-8\"\n";
$_text.= "Content-Transfer-Encoding: 8bit\n\n";
$_text.= $_body."\n"

بلوک دوم واسه عکس

کد php:
$_text.= "--".$_splitter."\n";
$_text.= "Content-Type: image/jpeg; name=\"$_file\"\n";
$_text.= "Content-Transfer-Encoding: base64\n";
$_text.= "Content-Disposition: attachment; filename=\"$_file\"\n\n";

$_attachment fread(fopen($_file"r"), filesize($_file)); // کل فايل رو با fread داخل يه string ميخونيم
$_attachment chunk_split(base64_encode($_attachment)); //string رو به base64 تبديل ميکنيم
$_text.= $_attachment."\n"//کد base64 رو به email اضافه ميکنيم 

آخر سر هم boundary رو به آخر ميل اضافه ميکنيم و ميل رو ميفرستيمHappy

کد php:
$_text.= "--".$_splitter."--\n";

mail($_to$_subject$_text$_header); 

"--" قبل از boundary نشون دهنده شروع بلوک جديد هستش
و فقط آخر تمام بلوک ها, هم قبل از boundary و هم بعد از boundary اضافه ميشه.

اين هم script کامل
کد php:
<?php

$_to 
"your@mail.domain";
$_subject "what ever";
$_body "your free text";
$_file "test.jpg";

$_splitter md5(uniqid(rand()));

$_header "MIME-Version: 1.0\n";
$_header.= "Content-Type: multipart/mixed; boundary = \"$_splitter\"\n";

$_text.= "--".$_splitter."\n";
$_text.= "Content-Type: text/html; charset=\"utf-8\"\n";
$_text.= "Content-Transfer-Encoding: 8bit\n\n";
$_text.= $_body."\n";

$_text.= "--".$_splitter."\n";
$_text.= "Content-Type: image/jpeg; name=\"$_file\"\n";
$_text.= "Content-Transfer-Encoding: base64\n";
$_text.= "Content-Disposition: attachment; filename=\"$_file\"\n\n";


$_attachment fread(fopen($_file"r"), filesize($_file));

$_attachment chunk_split(base64_encode($_attachment));

$_text.= $_attachment."\n";


$_text.= "--".$_splitter."--\n";

mail($_to$_subject$_text$_header);

?>

Root is not accessible
(آخرین ویرایش در این ارسال: ۱۳-مرداد-۱۳۹۰, ۱۳:۵۷:۲۱، توسط PouriaAmid.)
۱۳-مرداد-۱۳۹۰, ۱۳:۴۹:۰۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : Ghoghnus
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,499
موضوع‌ها: 271
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1654
( 3939 تشکر در 1454 ارسال )
ارسال: #10
RE: اسکریپت ارسال فایل با ایمیل
ممنون دوست عزیز خیلی خوب بود ولی ای کاش کد خودم را ویرایش میکردی شاید بهتر میفهمیدم(چون سواد php من صفر هستش)

ولی بازم ممنون لطفتون

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي شادی − بهینه شده برای ورژن جدید
  
۱۳-مرداد-۱۳۹۰, ۱۹:۳۵:۵۰
وب سایت ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Question [سوال] API - سرویس ارسال و دریافت ایمیل crafcrab 5 3,084 ۲۴-آبان-۱۳۹۶, ۲۲:۳۱:۰۳
آخرین ارسال: babyy
  ایجاد کوکی توسط جاوا اسکریپت hamed_Arfaee 1 2,353 ۲۶-فروردین-۱۳۹۳, ۱۲:۱۷:۰۲
آخرین ارسال: hamed_Arfaee
  ارسال ایمیل Html با تابع “()mail” در php Ghoghnus 0 2,097 ۰۲-دى-۱۳۹۲, ۱۰:۱۹:۵۴
آخرین ارسال: Ghoghnus
  بمب کردن ایمیل! Ghoghnus 1 1,799 ۱۰-آبان-۱۳۹۱, ۲۲:۰۳:۴۲
آخرین ارسال: babyy
  در خواست اسکریپت تاریخ.... Vig 2 2,751 ۲۶-مهر-۱۳۹۰, ۰۸:۰۸:۴۵
آخرین ارسال: r3001
  دریافت اطلاعات و ارسال آن به ایمیل shabtabj 4 4,325 ۰۶-مرداد-۱۳۹۰, ۰۲:۱۷:۵۳
آخرین ارسال: shabtabj
  مشکل در ارسال فایل Ghoghnus 12 8,289 ۰۵-مرداد-۱۳۹۰, ۱۵:۲۲:۴۱
آخرین ارسال: Ghoghnus
  ارسال میل فارسی با php MH12 3 5,510 ۰۳-آذر-۱۳۸۹, ۱۰:۵۳:۰۱
آخرین ارسال: Ghoghnus
  کمک برای ارسال ایمیل toytown 2 4,072 ۰۱-شهریور-۱۳۸۹, ۱۶:۵۲:۰۰
آخرین ارسال: amir00
  دریافت ایمیل با php ahsanjan 5 7,441 ۰۱-شهریور-۱۳۸۹, ۱۶:۴۶:۰۵
آخرین ارسال: amir00

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 6 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS