لدي مشكلة مع التابع mail في php

السلام عليكم :

درست التابع mail في php و قمت ببناء نموذج ارسال ايميل بسيط و رفعته على استضافة مجانية

و لكن أقوم بالإرسال و لا تصل أي رسال إلى العناوين التي أرسلها اليها

الكود وضعته بأول تعليق من أجل التنسيق

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

 if (isset($_POST['sub'])) {

$to=$_POST['to'];
$subject=$_POST['subject'];
$body=$_POST['body'];

mail($to, $subject, $body);
}
-1

ماذا تقصد ب sub ؟

هذا الرابط سيفيدك

http://php.net/manual/en/fu...

-1

sub هي اسم زر الإرسال

و الكود الذي كتبته هو من أول مثال في الرابط الذي أعطتني اياه

-2

لا تضع اسم الزر ولكن ضع اسم الفورم

في بعض الأحيان ستجد أن الرسائل تذهب لمجلد السخام لأنها من مصدر غير موثوق

لا أخي فأنا أراقب مجلد السبام و لا يوجد شيء

منذ قليل اشتغل معي الكود و استطعت الإرسال و لكن لا يتم الإرسال إلا إلى عنوان على الhotmail أما على الgmail فلا يتم استقبال أي رسالة و جربت الأمر مع عنوانين عليه

و هناك مشكلة فعنوان الرسالة و محتوياها عندما يكونان باللغة العربية يظهران بالشكل £Ù‡Ù„ا Ùˆ سهلا بك في موقعنا

علما أن ترميز الصفحة هو utf_f و لا مشكلة مع اللغة العربية فيها

فما هو الحل ؟

-1

هل صفحة التي بها دالة mail() منفصلة أم مدموجة بنفس صفحة التي توضع فيها الرسالة .

إن كانت منفصلة ، ضع هذا الكود في بداية الصفحة

header('Content-Type: text/html; charset=utf-8');

معظم الاستضافات المجانية تعطل دالة الميل mail وهذا ةعلى الارجح هو السبب

-1

كما قال لك الاخ الكريم " محمد طه "

او يمكنك تعديل الكود كما يلي :

$to=$_POST['to'];
$subject=$_POST['subject'];
$body=$_POST['body'];
if($_POST){
mail($to,$subject,$body);}
-2

أخي هناك نموذج html يحوي زر اسمه sub و لكن لم أضعه لأنه بديهي و ليس به أي مشكلة

-1

السلام عليكم.

أولا تأكد أن الدالة متوفرة في الاستضافة لديك.

بخصوص اللغة العربية فيجب عليك تحديد الترميز UTF أثناء الإرسال عند طلب الدالة mail كما في المثال التالي وهو لسكربت نموذج اتصال أستخدمه على أحد المواقع لدي

<?php

$EmailFrom = "sender@exemple.com";
$EmailTo = "receiver@exemple.com";
$Subject = "Subject";
$Name = Trim(stripslashes(htmlspecialchars($_POST['Name']))); 
$City = Trim(stripslashes(htmlspecialchars($_POST['City']))); 
$Email = Trim(stripslashes(htmlspecialchars($_POST['Email']))); 
$Message = Trim(stripslashes(htmlspecialchars($_POST['Message']))); 

// validation
$validationOK=true;
if (!$validationOK) {
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
  exit;
}

// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $Name;
$Body .= "\n";
$Body .= "City: ";
$Body .= $City;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Message: ";
$Body .= $Message;
$Body .= "\n";

// send email 
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>\r\nContent-Type: text/plain; charset=UTF-8\r\nContent-Transfer-Encoding: 8bit");

// redirect to success page 
if ($success){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=thanks.php\">";
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
?>
-1

لن تصدقوا ماذا اكتشفت حتى أنني أشك بوجود جني في الإستضافة ^_^

الرسالة تصل إلى بريد الهوتميل بشرط واحد أن يكون بجسم الرسالة كلمة activate أي في البارمتر message

مثلا هذه الرسالة تصل و تعمل بشكل طبيعي

<?php
$to='alialoshy1993@hotmail.com';
$subject="hhhh";
$body="activate";
mail($to, $subject, $body);
 ?>

أما هذه فلا تعمل لأن جسم الرسالة لا يحوي الكلمة activate بشكل صحيح فقد حذفت منها أول حرف

<?php
$to='alialoshy1993@hotmail.com';
$subject="hhhh";
$body="ctivate";
mail($to, $subject, $body);
?>

و قد جربتها على استضافتين هما eb2a.com و ga2h.com و أيضا نفس النتائج مع ملاحظة أن الرسالة لا تصل إلى بريد الجي ميل فقط تصل إلى الهوتمل و لو كانت تحوي على الكلمة activate جربوها أنتم أيضا

اذا هي المشكلة من الإستضافة أي لا ترسل الرسالة الا اذا كانت تحوي على activate أما أنها من الهوتمل و الجي ميل الذين لا يستقبلان الرسائل

-2

قم بتجربة هذا :)

if (isset($_POST['sub'])) {

$to=$_POST['to'];

$subject=$_POST['subject'];

$body=$_POST['body'];

$header = "From: "mail@domain.com";

mail($to, $subject, $body,$header);

}

-2

ربما المشكلة ان دالة mail

غير مفعلة فى الاستضافة المجانية

يمكنك التأكد عن طريق دالة

phpinfo();

-2

اخى

اغلب الاستضافات المجانية مش بتفعل اصلا mail function ممكن يكون كودك تمام و مفيهوش مشاكل لاكن اصلا الاستضافة هيا الى مش مفعلة الfunction دى

كودك صح

-2

المشكلة هي : ان دالة الايميل تتكون من 4 برامتر , وليس 3 فقط , والاربعة هم : المرسل اليه , العنوان ,الرسالة , المرسل منه .

وعلى ما اضن ان البرامتر الناقص هو الرسالة فاضفه...