PDA

View Full Version : مشکل ارسال نشدن کامل فایل به صورت اتچ به ایمیل



Itist82
دوشنبه 07 اسفند 1391, 22:43 عصر
من توسط یه کتابخانه با اسم swift mailer و همین طور بدون استفاده از اون کدی نوشتم که اطلاعات دریافت شده از کاربر رو به همراه فایلی که انتخاب کرده و فرستاده برای ایمیل خودم می فرستم. فایل باید به ایمیل اتچ بشه. الان فایل داره درست آپلود می شه و توی سرور میاد بدون هیچ مشکلی. ایمیل هم ارسال می شه و فایلی با همون اسم هم بهش اتچ می شه اما مشکل این جاست که همه فایل های اتچ شده فقط یک کیلو بایت هستن و اگه فایل ارسالی بیشتر بوده باشه بازم چیزی که اتچ شده همون یک کیلو بایته. این فایلا اگه حجم واقعیشون این قدر یا کمتر باشه بعد از دانلود شدن باز می شن. اما فایل های حجیم تر نه. واقعا نمی دونم باید چی کار کنم ممنون می شم کمک کنید.
این کدی هست که با استفاده از swift mailer نوشته شده:


function SwiftMailer($from,$to,$subject,$text,$path_of_uplo aded_file){

$transport = Swift_SmtpTransport::newInstance('localhost', 25);

// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);

$message = Swift_Message::newInstance()

// Give the message a subject
->setSubject($subject)

// Set the From address with an associative array
->setFrom(array($from => 'دبیرخانه'))

// ->setCharset('iso-8859-2');

// Set the To addresses with an associative array
->setTo($to)

// Give it a body
->setBody($text)

// And optionally an alternative body
// ->addPart('<q>Here is the message itself</q>', 'text/html')

// Optionally add any attachments
->attach(Swift_Attachment::fromPath($path_of_uploade d_file));

$result = $mailer->send($message);
}

. اینم فانکشنی که خودم نوشتم:



function mail_attachment($filename, $path, $mailto, $from_mail, $from_name, $replyto, $subject, $message) {
global $fileSize;
$file = $path.$filename;
//$file_size = filesize($file);
$handle = fopen($file, "r");

$filedata = fstat($handle); // get some info about the file
$size = $filedata[7]; // size in bytes
echo $fileSize;
$content = fread($handle, $fileSize);

$content = chunk_split(base64_encode($content));
ob_start();
$content .= ob_get_clean();
$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 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
return true;
} else {
echo "mail send ... ERROR!";
}
}

Unique
سه شنبه 08 اسفند 1391, 15:49 عصر
دوست عزیز بهتر نیست از phpmailer استفاده کنید؟ امکان attach به راحتی در اون وجود داره ! این را میگم چون فکر نکنم دوستان وقت کنند کد را چک کنند و تست کنند و شما به سرعت نیاز دارین مشکلتون حل بشه.

Itist82
سه شنبه 08 اسفند 1391, 16:24 عصر
از اون هم استفاده کردم. اون که بالکل هیچی اتچ نمی کرد! کاراکترهای فارسی رو هم درست نشون نمی داد که حوصله ام نیومد ببینم کارکتر ست رو چه جوری باید تغییر داد. قسمت دوم کد اساس ارسال ایمیل توی پی اچ پی هستش. من فکر نمی کنم کد مشکل داشته باشه، به نظرم مشکل یه جای کوچیکه. مثلا یه محدودیتی برای اتچ کردن فایل به پیغام، یه عددی که جایی باید ست بشه. نمی دونم همچین چیزی هست یا نه. این swift mailer هم کتابخانه معروفی هست و خیلی ها دارن استفاده می کنن.

Itist82
پنج شنبه 10 اسفند 1391, 12:48 عصر
دوستان هیچ کس هیچ راه حلی نداره؟ من اولین نفرم تو این تالار که دارم سعی می کنم فایل اتچ کنم با php؟؟!!!

Unique
جمعه 11 اسفند 1391, 12:26 عصر
phpmailer خیلی خیلی معتبره ! لطفا کدی که با phpmailer مشکل داره را بگذارین تا کمکتون کنم. من همینطوری نمیگم بار ها ازش استفاده کردم.

farhad.tahmuresi
جمعه 22 فروردین 1393, 20:42 عصر
من هم همین مشکل رو دارم :|
هرکار می کنم اتچ نمی شه

cpuram
جمعه 22 فروردین 1393, 20:51 عصر
حجم فایل نباید بیشتر از 25 مگ باشه .

tarenoco
سه شنبه 30 اردیبهشت 1393, 08:19 صبح
سلام
من یه فرم میخوام بسازم بصورت زیر
119246
که وقتی که کاربر ایمیل رو وارد میکنه و ارسال رو میزنه
فایلی که من تو هاستن ذخیره کردم برای او ایمیلی که وارد کرده ارسال بشه
اینو برای آیفون میخوام که بشه یک سری فایل رو به ایمیل ضمیمه کرد
تا کاربر دیگه نیاد دانلود کنه و ضمیمه کنه
ممنون میشم راهنمایی کنید