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

سؤال في دالة Mail

بدأه alex911 في 4 سبتمبر 2013 · 8 رد · 1,312 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا عملت فورم Html ودة الكود بتاعة
 

<!DOCTYPE html>
<html dir="ltr">
<body>
<form method="post" action="mail.php">
Your Email
<br>
<input name="you" type="text">
<p> <p>
Receiver Email
<input name="to" type="text">
<p> <p>
Subject
<input name="sub" type="text">
<p> <p>
Massage
<br>
<textarea name="msg" rows="10" cols="30">
</textarea>
<p> <p>
<input type="submit" value="send">
</form>
</body>

ودة ملف ال php

<?php
mail ("$to", "$sub", "$msg", "From : you");
echo "Your mail had been sent" ;
?>



ورفعتهم على هوست - بس لما ببعت ايميل بيجبلي Your mail had been sent لكن مفيش حاجة بتوصل

تم تعديل هذه المشاركة بواسطة محمد عودة في 5 سبتمبر 2013 في 09:19

#2

السلام عليكم

 

أخي هذه الجملة سيتم طباعتها سواء تم إرسال الرسالة أم لا لأنك لم تضع شرط لطباعتها , وأيضاً المتغيرات المرسلة من النموذج يتم جلبها من مصفوفة $_POST فيصبح كود PHP بعد التعديل على النحو التالي :

<?php
if($_POST['sendMail'])
{
    $to = $_POST['to'];
    $sub = $_POST['sub'];
    $msg = $_POST['msg'];
    if(mail ("$to", "$sub", "$msg", "From : you"))
    {
        echo "Your mail had been sent" ;
    }
    else
    {
        echo "error: mail not send !" ;
    }
}
?>

* ملاحظة : كثيرمن الإستضافات المجانية تقوم بإغلاق إستخدام دالة mail أي أنك لن تستطيع إرسال الرسائل إلا بعد شراء إستضافة مدفوعة .

1

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

#3

ألف شكر يا باشا - انا رافعهم على هوست مدفوعة - الايميل وصل وكلة تمام بس في مشكلة واحدة

 

أولا انا حذفت الشرط if - عشان انا لسة في الاول في php ومش عايز ألغبط نفسي :D و الكود كالتالي

<?php
 $to = $_POST['to'];
 $sub = $_POST['sub'];
 $msg = $_POST['msg'];
mail ("$to", "$sub", "$msg", "From : you") ;
echo "Your mail had been sent" ;

?>

بس المشكلة انة مبينديش على المتغير you - يعني الايميل لما بيوصل على الان بوكس بيبقة   from : prod.phx3.secureserver.net  مع انة المفروض يكون from الايميل الي كتبتة في خانة you

تم تعديل هذه المشاركة بواسطة alex911 في 5 سبتمبر 2013 في 01:36

#4

- من غير إستخدام الشروط مش هتقدر تنفذ حجات كتير في اللغة عليك تعلمها لأنها من الأساسيات التي بدونها لن تستطيع أن تكمل .

 

- هذا هو الكود بعد إستلام المتغير you من نموذج الإرسال :

<?php
$to = $_POST['to'];
$sub = $_POST['sub'];
$msg = $_POST['msg'];
$you = $_POST['you'];
mail ("$to", "$sub", "$msg", "From : $you") ;
echo "Your mail had been sent" ;
?>

* ملاحظة: المتغيرات دائماً تسبقها العلامة $ في لغة PHP وتستخدم بنفس الشكل داخل علامتي الإقتباس المزدوجتين لإستبدال هذه المتغيرات بقيمها .

1

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

#5

هبدأ فيها النهادرة ان شاء الله

 

كان عندي إستفسار اخير بعد اذنك : ))

 

في ايميلات لما بكتبها في خانة you مبتوصلش

 

حضرتك عارف اني لو كتبت اي ايميل @hotmail في خانة You - بيوصل عادي جدا وبيبقة كأن الايميل الي كتبتة هو الي بعتة حتى لو انا مش صاحب الميل

بس في دومينات معينة لما بكتبها الميل مبيوصلش - مثلا لو كتبت mahamad@hotmail.com  بيوصل عادي from الميل دة مع اني انا مش صاحب الميل دة لكن لو كتبتة mahamad@faceboo.com مفيش حاجة بتوصل - هل دة حماية مثلا فيس بوك عملاها على الدومين بتاعهم ؟

 

ومش الموضوع دة كدة يعتبر ثغرة ان اي حد ممكن يبعت ميل ويظهر انة from ميل مش بتاعة اصلا

#6

هذا يعتمد على الشركة صاحبة الايميل و كيف قاموا بتعديل خادم الايميل الخاص بهم. بعض الشركات كالفيسبوك قاموا بنشر عنوان الابي الخاص بهم و بذلك أي ايميل يتم ارساله من غير الابي يعتبر غير أصلي و لا يتم قبوله. و بعض الشركات كالهوتميل لا تستطيع فعل ذلك نظرا لكثرة عدد المستخدمين و لتنوع طريقة البعث (hotmail.com, outlook)...الخ

1
#7
البوصلة التقنية كتب:

هذا يعتمد على الشركة صاحبة الايميل و كيف قاموا بتعديل خادم الايميل الخاص بهم. بعض الشركات كالفيسبوك قاموا بنشر عنوان الابي الخاص بهم و بذلك أي ايميل يتم ارساله من غير الابي يعتبر غير أصلي و لا يتم قبوله. و بعض الشركات كالهوتميل لا تستطيع فعل ذلك نظرا لكثرة عدد المستخدمين و لتنوع طريقة البعث (hotmail.com, outlook)...الخ

 

شكرا يا معلم : )) - انا لو عندي ويب سايت example .com   وعايز احمى الايميلات الي @ الدومين بتاعي - عشان محدش يقدر يستخدمها بكود php زي المثال السابق - في حاجة اقدر اعملها ؟

تم تعديل هذه المشاركة بواسطة alex911 في 9 سبتمبر 2013 في 22:18

#8

تستطيع عن طريق تغيير ملف ال spf

ستجد اعدادات الملف في قسم ال DNS التابع لموقعك تحت الخيارات، و بداخل اعدادات ال DNS ستجد ملف spf و بداخله تستطيع وضع الاي بي الخاص بك و بذلك لا يقبل أي بريد إلا إذا كان من الاي بي المذكور بداخل ملف ال spf. السبب: هو أن جميع المواقع تقوم بقراءة الملف spf و التأكد من الاي بي قبل قبول الرسالة

 

يمكنك وضع موقعك هنا و قراءة اعدادات ال spf

http://mxtoolbox.com/spf.aspx

 

يجب أن يكون هناك حقل اسمه ip4 مع رقم الاي بي

1
#9
البوصلة التقنية كتب:

تستطيع عن طريق تغيير ملف ال spf

ستجد اعدادات الملف في قسم ال DNS التابع لموقعك تحت الخيارات، و بداخل اعدادات ال DNS ستجد ملف spf و بداخله تستطيع وضع الاي بي الخاص بك و بذلك لا يقبل أي بريد إلا إذا كان من الاي بي المذكور بداخل ملف ال spf. السبب: هو أن جميع المواقع تقوم بقراءة الملف spf و التأكد من الاي بي قبل قبول الرسالة

 

يمكنك وضع موقعك هنا و قراءة اعدادات ال spf

http://mxtoolbox.com/spf.aspx

 

يجب أن يكون هناك حقل اسمه ip4 مع رقم الاي بي

 

والله يا باشا مش عارف اقلك اية - شكرا يا عمنا : D

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