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

ارسال بريد الكتروني

مغلق
بدأه Eman في 22 فبراير 2003 · 5 رد · 792 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لدي كود يقوم بارسال بريد الكتروني وهو يعمل بشكل جيد في حاله الـ Text Only ... ولكن في حالة الـ HTML .. لا يعمل بشكل صحيح .. وذلك لأنه يقوم بتغيير علامة التنصيص " إلى " .. فلا يعرض الصور ولا تعمل الوصلات :( .. فماذا أفعل؟؟؟ ... أرجو سرعة الرد

الكود هو :

	if ($Submit=="Send Now!")
	{
		// Security
		$subject = strip_tags($subject);
		$TEXTMailText = stripslashes($MailText); // put nl2br() if not showing newline properly in email messages

		$connection = mysql_connect($dbhost, $dbusername, $dbpassword);
		$query = "SELECT * FROM listsubscribers";
		$result = mysql_db_query($dbname, $query);

		if ($row = mysql_fetch_array($result))
		{			
			$EmailTo = $row["email"];
			$ok = true;
		}

		while ($row = mysql_fetch_array($result))
		{
			$EmailTo .= ", " . $row["email"];
			$ok = true;
		}

		if (($mailtype=="text") && ($ok))
		{
			$Message = $TEXTMailText;
			$Message .= $TXTfooter;

			$sent = mail($SenderFrom."<".$EmailFrom.">", $subject, $Message, "From:$SenderFrom<$EmailFrom>nReply-to:$EmailReplyTo
					nbcc:$EmailTo");
		}
		elseif (($mailtype=="html") && ($ok))
		{
			$Message = $MailText; // Send HTML mail as it was entered in multi line text box
			$Message .= $HTMLfooter;


			$sent = mail($SenderFrom."<".$EmailFrom.">", $subject, $Message, "From:$SenderFrom<$EmailFrom>nReply-to:$EmailReplyTo
					nbcc:$EmailTonContent-Type:text/html; charset=iso-8859-1");	
		}

	}
?>
#2

استخدمي stripslashes أيضاً :

if ($Submit=="Send Now!")
    {
        // Security
        $subject = strip_tags($subject);
        $TEXTMailText = stripslashes($MailText); // put nl2br() if not showing newline properly in email messages

        $connection = mysql_connect($dbhost, $dbusername, $dbpassword);
        $query = "SELECT * FROM listsubscribers";
        $result = mysql_db_query($dbname, $query);

        if ($row = mysql_fetch_array($result))
        {            
            $EmailTo = $row["email"];
            $ok = true;
        }

        while ($row = mysql_fetch_array($result))
        {
            $EmailTo .= ", " . $row["email"];
            $ok = true;
        }

        if (($mailtype=="text") && ($ok))
        {
            $Message = $TEXTMailText;
            $Message .= $TXTfooter;

            $sent = mail($SenderFrom."<".$EmailFrom.">", $subject, $Message, "From:$SenderFrom<$EmailFrom>nReply-to:$EmailReplyTo
                    nbcc:$EmailTo");
        }
        elseif (($mailtype=="html") && ($ok))
        {
            $Message = $MailText; // Send HTML mail as it was entered in multi line text box
            // ** ALSO STRIP SLASHES HERE
            $Message = stripslashes($Message);
            $Message .= $HTMLfooter;


            $sent = mail($SenderFrom."<".$EmailFrom.">", $subject, $Message, "From:$SenderFrom<$EmailFrom>nReply-to:$EmailReplyTo
                    nbcc:$EmailTonContent-Type:text/html; charset=iso-8859-1");    
        }

    }
?>
#3

أخي صلاح أشكرك على الرد ... ولكن أيضا الكود لا يعمل بشكل صحيح .. فرجاء .. أريد كود ارسال بريد الكتروني على هيئة HTML ... الأمر ضروري ومستعجل

#4

الحمد لله لقد تم حل المشكلة .. واستطعت ارسال بريد الكتروني على هيئة HTML عن طريق هذا الكود

			$Message = urlencode($MailText);	                
			$Message = ereg_replace("%5C%22", "%22", $Message);	                
			$Message = urldecode($Message);
	                $Message = stripslashes($Message);
                        $Message .= $HTMLfooter;


			$sent = mail($SenderFrom."<".$EmailFrom.">", $subject, $Message, "From:$SenderFrom<$EmailFrom>nReply-to:$EmailReplyTonbcc:$EmailTonContent-Type:text/html; charset=windows-1256");

ولكن المشكلة في هذا الكود هي اللغة العربية ... فهي لا تظهر بشكل صحيح .. حتى في عنوان الرسالة .. فهي تظهر على هيئة أرقام ورموز غريبة .. علماً بأن هذه المشكلة ليست موجوده على الهوتميل ولا الياهو فاللغة العربية تظهر بشكل ممتاز فيهما .. اما على Qatar.net.qa .. وهو الذي يهمني .. فهي تظهر كما وصفت .. على هيئة رموز وأرقام .. فأرجو أن أجد عندكم تفسيرا أو حلاً للمشكلة ..

هذا وللجميع أرق تحياتي

#5
اقتباس
اما على Qatar.net.qa .. وهو الذي يهمني .. فهي تظهر كما وصفت .. على هيئة رموز وأرقام .. فأرجو أن أجد عندكم تفسيرا أو حلاً للمشكلة

ربما ملقم البريد لدي Qatar.net.qa تستخدم محارف ISO او غير تلك التي بعث بها البريد، هذه المشكلة موجودة أيضا لدينا في بريد arabtem2000.com ...

ربما تفيد تحديد صفحة المحارف codepage في ترويسة البريد ..charset=windows-1256 او محارف ISO الخاصة بالعربية إن وجد ..

والله أعلم

#6

أولاً لا داعي لاستخدام urlencode !

            $Message = str_replace("", '', $Message);         
             $Message = stripslashes($Message);
                        $Message .= $HTMLfooter;


            $sent = mail($SenderFrom."<".$EmailFrom.">", $subject, $Message, "From:$SenderFrom<$EmailFrom>nReply-to:$EmailReplyTonbcc:$EmailTonContent-Type:text/html; charset=windows-1256");

ثانياً، من المفترض أن تعمل stripslashes بشكل صحيح وتقوم بالتخلص بكل علامات الزائدة، لكن ربما كان هناك خطأ آخر يمنع تأثيرها.

هذا الموضوع مغلق.

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