برگزیده های پرشین تولز

کمک فرم تماس با ما

mahdieh69

کاربر تازه وارد
تاریخ عضویت
8 جولای 2011
نوشته‌ها
4
لایک‌ها
0
سلام
من یه فرم تماس با ما دارم که وقتی روی گزینه ارسال میزنم این خطا رو میده
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\mail\process_mail.php on line 15
این کد در خط 15 قرار داره:
PHP:
mail($to,$subject,$msg,$from) or die("ایمیل ارسال نشد.");
من اومدم این رو به این صورت تغییر دادم(آیا اینطور نوشتن درسته ؟؟؟)


PHP:
ini_set("sendmail_from","mail($to,$subject,$msg,$from)" or die("ایمیل ارسال نشد."));

حالا پیام ارسال ایمیل میده اما به ایمیل من چیزی ارسال نمیشه این دستوری که نوشتم درسته یا نه؟
(یه سوال خیلی ابتدایی ):وقتی من این رو روی localhost اجرا می کنم ایمیل واقعا ارسال میشه؟؟؟
 
Last edited:

Datis0

Registered User
تاریخ عضویت
7 ژوئن 2007
نوشته‌ها
497
لایک‌ها
42
محل سکونت
Esfahan
smtp server داری رو لوکال هاست ؟؟
 

webs

Registered User
تاریخ عضویت
14 آپریل 2010
نوشته‌ها
2,016
لایک‌ها
1,464
محل سکونت
php.ini
اینطور که شواهد نشون میده شما این اسکریپت رو روی لوکال نصب کردید.

Failed to connect to mailserver at localhost

روی لوکالتون هم mail Server نصب نکردید. این خطا به همین خاطر است. اگر mail Server هم نصب کنید، ممکنه که ISPتون پورت میل رو بسته باشه و اسکریپت نتونه کارش رو انجام بده.

برای نشون ندادن خطا از علامت @ قبل از دستور mail استفاده کنید.

کد:
@mail($to,$subject,$msg,$from)

پاسخ سوالتون:
اگر میل سرور نصب نباشه یا پورت ایمیل بسته باشه، ایمیل ارسال نمیشه. ولی روی سرور کار می کنه.
 
Last edited:

mahdieh69

کاربر تازه وارد
تاریخ عضویت
8 جولای 2011
نوشته‌ها
4
لایک‌ها
0
(webs) عزیز من کاری که شما گفتین کردم اما پیغام میده "ایمیل ارسال نشد"
(Datis0) عزیز نمیدونم stmp server نصب هست یا نه.
راستش من اطلاعات زیادی راجع به این چیزا ندارم ولی مجبورم تو پروژم ازش استفاده کنم.
(AminMrz)عزیز من فایلی که شما لطف کردین گذاشتین رو هم دانلود کردم.وقتی ارسال رو میزنم پیغام میده "با موفقیت ارسال شد" اما ایمیلی برای من ارسال نمیشه ، با توجه به اینکه من روی localhostدارم اینو اجرا میکنم آیا واقعا ایمیلی ارسال میشه یا همینکه پیغام تایید ارسال ایمیل رو میده نشون دهنده درستی کار هستش؟؟؟؟
:(
 
Last edited:

webs

Registered User
تاریخ عضویت
14 آپریل 2010
نوشته‌ها
2,016
لایک‌ها
1,464
محل سکونت
php.ini
اینطور که معلومه شما پست منو درست نخوندی. یکبار دیگه پست قبلیم رو بخون.

گذاشتن علامت @ قبل از دستور mail فقط برای اینه که پیغام Warning در خروجی ظاهر نشه ولی این کار (گذاشتن علامت @) هیچ تاثیری در درست کارکردن یا نکردن اسکریپت نداره.

زیاد نمیخواد درگیر این موضوع بشی. به صورت ساده:
همینکه روی لوکال پیغام میده که "ایمیل ارسال نشد" نشون دهنده اینه که اسکریپت درست کار می کنه!!!!
وقتی اسکریپت رو روی سرور اجرا کنی، ایمیل هم ارسال می کنه و دیگه اون پیغام "ایمیل ارسال نشد" نمایش داده نمیشه.
 

mahdieh69

کاربر تازه وارد
تاریخ عضویت
8 جولای 2011
نوشته‌ها
4
لایک‌ها
0
درس گفتین من دقیق نخوندم یعنی اشتباه متوجه شدم .
اما من رو هاست هم اجرا کردم بازم پیام "ارسال نشد" میده.
 

mahdieh69

کاربر تازه وارد
تاریخ عضویت
8 جولای 2011
نوشته‌ها
4
لایک‌ها
0
این کد مربوط به ارساله

PHP:
<?php
session_start();
$yourmail="[email protected]";
//----------------------------------
if((isset($_POST["from"]))&&(isset($_POST["msg"]))){
//------------
validation();
//------------
$sender=$_POST["from"];
$pms=$_POST["msg"];
$to=htmlspecialchars($yourmail);
$from=htmlspecialchars($sender);
$subject=$_POST["sbj"];
$msg=htmlspecialchars($pms);
@mail($to,$subject,$msg,$from) or die("ایمیل ارسال نشد.");
print "با تشکر به ایمیل شما به ".$to." ارسال شد.در اولین فرصت رسیدگی خواهد شد";
}

function validation()
{
if($_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'] ) ) {
 //if security is ok.
 if((isset($_POST["from"]))&&(isset($_POST["msg"]))){
  $sender=$_POST["from"];
  $pms=$_POST["msg"];
 if(strlen($sender)==0)
  die("فیلد ایمیل شما خالی است.");
 if(! strstr($sender,"@"))
  die("آدرس ایمیلتان معتبر نیست."); 
 if(strlen($pms)==0)
 die("شما پیامی برای ارسال ننوشتید .");  
 }
 }
 else {
  die("کد امنیتی داخل تصویر را به درستی وارد نکرده اید.");
 }
}
?>
 
بالا