الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في ارسال صورة مع الرسالة المرفقة عبر الدالة Mail

بدأه joo في 28 يوليو 2008 · 2 رد · 916 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

اريد ارسال رسالة , ومعها مرفق صورة , وقمت بارسال الرسالة بعد القيام بإعداد االاعدادات المناسبة للتابع mail

ووصلت الرسالة بنجاح , ولكن المشكلة تكمن ف يالصورة المرفقة مع الرسالة التي وصلت على شكل اشارة X

واليكم الرماز - الكود - المتعلق بارسال الصورة

 $imgPath = "../newsimg/".$imgName;
			$header.="Content-Type: multipart/mixed";
			$header .= "Content-disposition: attachment; filename=".$imgPath."\n";

وما سبق يمثل الجزء المتعلق باضافة المعلومات المتعلقة بالصورة في جزء الترويسة

حيث احدد اولا مسار الصورة - مكان تواجدها على المخدم , ومن ثم امرر ه للترويسة

فأين تكمن المشكلة ؟؟

سلام

#2

وعليكم السلام

لالحاق صورة مع الرساله لدينا احتمالين :

* إما ان تعرض الصورة داخل الرسالة وتدعى Inline أو Embedded

* إما ان تكون مع الرسالة ك Attached

فلعرض الصورة داخل الرسالة :

الكود الاول .... Text + Image

<?php
 $header="To:  \n".
 "From:  \n".
 "Subject:$subject \n".
 "MIME-Version: 1.0\n".
 "Content-Type: multipart/mixed; boundary=\"Boundry==587r5rs\"\n";

 $logo = file_get_contents("logo.png");
 $logo = chunk_split(base64_encode($logo));

 $message="
 --Boundry==587r5rs
 Content-type : text/plain
 Content-Transfer-Encoding : 7bit

 Text Mail ...
 Hai, Its me!
 --Boundry==587r5rs
 Content-Type: image/png; name='logo.png'
 Content-Disposition: inline; filename='logo.png'
 Content-Transfer-Encoding: base64
 Content-ID: <logo.png>

 {$logo}
 --Boundry==587r5rs--";

 mail($to,$subject,$message,$header);
 ?>

الكود الثاني .... HTML with Image

<?
 $subject='Text & Html Mail';

 $header="To:  \n".
 "From:  \n".
 "Subject:$subject \n".
 "MIME-Version: 1.0\n".
 "Content-Type: multipart/related; boundary=\"Boundry==587r5rs\"\n";

 $logo = file_get_contents("logo.png");
 $logo = chunk_split(base64_encode($logo));

 $message="
 --Boundry==587r5rs
 Content-type : text/html
 Content-Transfer-Encoding : 7bit

 <html>
  <body>
	<h1>Text & Html Mail ...</h1>
	<br>
	  Hai, Its me!
	  <img src='cid:logo.png'/>
  </body>
 </html>

 --Boundry==587r5rs
 Content-Type: image/png; name='logo.png'
 Content-Disposition: inline; filename='logo.png'
 Content-Transfer-Encoding: base64
 Content-ID: <logo.png>

 {$logo}
 --Boundry==587r5rs--";

 mail('admin@localhost',$subject,$message,$header);
 ?>

أو بامكانك استخدام الـ Class مثل :

PHPMailer أو غيره حيث ستجد بساطه في الكود.

مثال .... كود بواسطة PHPMailer

<?php

require("PHPMailer/class.phpmailer.php");
$mail = new PHPMailer();
$mail->SetLanguage("en", "phpmailer/language/");
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = "localhost"; // SMTP server

$mail->From = "admin@localhost";
$mail->AddAddress("???????????");


$mail->Subject = "First PHPMailer Message";
$mail->IsHtml(true);
$mail->AddEmbeddedImage('logo.png','load','logo.png','base64','image/png');
$mail->Body	='<HTML>
				   <BODY>
					 <center>Heloooo</center>
					 <IMG SRC="cid:load">
				   </BODY>
				 </HTML>';


if(!$mail->Send())
{
   echo 'Message was not sent.';
   echo 'Mailer error: ' . $mail->ErrorInfo;
}
else
{
   echo 'Message has been sent.';
}
?>

تم تعديل هذه المشاركة بواسطة mana80 في 28 يوليو 2008 في 23:04

I Say Nothing

#3

السلام عليكم ورحمة الله وبركاته

اخي الكريم

بارك الله فيك وبجاوبك الكافي والمسهب

كثر الله من امثالك

سلام

مواضيع مشابهة