PDA

View Full Version : mail



mahan123
شنبه 20 مهر 1392, 16:38 عصر
سلام من تابع ارسال ایمیل رو مینویسم و کاملا هم درست به صورت زیر که می بینید و انتظار دارم وقتی صفحه لود میشود ایمیل ارسال شود اما ایمیل ارسال نمیکنه،آیا من باید فایل php خودم رو دستکاری کنم یا اشکال دیگری دارم؟

$Name = "Da Duder";
$email = "a@b.com";
$recipient = "sherkatealp@alpsanaat.com";
$mail_body = "The text for the mail...";
$subject = "Subject for reviever";
$header = "From: ". $Name . " <" . $email . ">\r\n";

mail($recipient, $subject, $mail_body, $header);

SilverLearn
شنبه 20 مهر 1392, 16:45 عصر
توی لوکال اسکریپت رو اجرا می کنید ؟

abolfazl-z
شنبه 20 مهر 1392, 16:46 عصر
دوست عزیز شما ابتدا ببینید که خروجی تابع mail چیست!

اگر true باشه به این معنی هست که PHP کار خودشو انجام داده !
اگر false باشه قطعا کدتون اشتباه هست.

حالا اگر true بود چی ؟

خوب صد در صد یک ایمیل خطا به ایمیل سرور ارسال میشه (ایمیلی که بصورت پیشفرض وجود دارد)
و خطا را میگه.

mahan123
شنبه 20 مهر 1392, 17:07 عصر
وقتی بر روی local اجرا میکنم خطای زیر رو میده و بر روی سرور هم هیچ پیغامی نشون داده نمیشه مگر اینکه با دستور if وقتی بنویسم پیغام عدم ارسال رو نمایش میده

پیغام لوکال
Failed to connect to mailserver at &quot;localhost&quot; port 25, verify your &quot;SMTP&quot; and &quot;smtp_port&quot; setting in php.ini or use ini_set() in C:\wamp\www\mail\index.php on line 19

SilverLearn
شنبه 20 مهر 1392, 17:12 عصر
توی لوکال که امکان ارسال نیست مگر در شرایطی که تنظیم بشه(php.ini)

سرور رو هم باید مطمئن بشید که میل سرور فعال باشه

یه تیکت به مدیر سرورتون بزنید ببینید فعال هست یا نه ...

mahan123
شنبه 20 مهر 1392, 18:22 عصر
وقتی با دستور print error_get_last میخام نوع خطا برام تشخیص داده بشه پیغام Array1 بهم نشون داده میشه

SilverLearn
شنبه 20 مهر 1392, 18:32 عصر
اینجوری استفاده کنید ببینید درست میشه :



<?php


$Name = "Mohammad";
$email = "silverlearn@live.com";
$recipient = "dr.m.abdollahi@gmail.com";
$mail_body = "The text for the mail...";
$subject = "Subject for reviever";
$header = "From: ". $Name . " <" . $email . ">\r\n";

if (mail($recipient, $subject, $mail_body, $header))
{
echo "Mail is Sent";
}
else
{
error_reporting(E_ALL);
}


?>

mahan123
یک شنبه 21 مهر 1392, 12:41 عصر
سلام
نه ایمیل ارسال میکنه نه پیغام خطایی میده

AliRezaPro
یک شنبه 21 مهر 1392, 22:37 عصر
چک کنید :

echo function_exists(mail);

SilverLearn
یک شنبه 21 مهر 1392, 22:39 عصر
خوب میل سرور فعال نیست ...

مشکل از سرور هست....

اگر از هاست های رایگان استفاده می کنید مشکلی عادی هست....

و اگر نه به مدیر هاستینگ خود تیکت بزنید تا بررسی کنند ...

pary_daryayi
دوشنبه 22 مهر 1392, 07:36 صبح
توی لوکال که امکان ارسال نیست مگر در شرایطی که تنظیم بشه(php.ini)



تنظیماتش چیه ؟

SilverLearn
دوشنبه 22 مهر 1392, 14:36 عصر
خوب منظور از تنظیم این بود که شما به یک smtp خارجی وصل بشید

مثلا با smtp مربوط به حساب جیمیل خودتون

برای تنظیم این کار اطلاعات زیر را در php.ini پیدا کنید و به مقدارهای خودتون تغییر دهید ...





SMTP = localhost و smtp_port = 25 و sendmail_from = you@yourdomain و sendmail_path =


توجه کنید که sendmail_path فقط برای سیستم های یونیکس هست و بطور پیشفرض غیر فعاله ! و نیازی هم نیست اگر از ویندوز استفاده می کنید دست به این تنظیم بزنید.