2012-02-29 11 views
0

私はIIS7で実行されているPHPでメールを送信するのに苦労しています。私はTelnet経由でアクセスし、問題なく介してメールを送信できるサーバー上で実行されているSMTPサーバーを持っているし、次のようにphp.iniを設定されています。mail()not working

[mail function] 
; For Win32 only. 
SMTP = localhost 
smtp_port = 25 

私がテストするために、単純なPHPスクリプトを実行すると、メール機能:

$to = "[email protected]"; 
    $subject = "Test mail"; 
    $message = "Hello! This is a simple email message."; 
    $from = "[email protected]"; 
    $headers = "From:" . $from; 
    if(mail($to,$subject,$message,$headers)) 
    { 
     echo('ok'); 
    } 
    else 
    { 
     echo('not ok'); 
    } 

okが返ってきますがメールは受信されません。私はerror_reporting(-1);を設定しており、エラーも警告も表示されません。私は何が間違っているのか困惑していますか?

+0

あなたの/ var/log/mailまたは/var/log/mail.errを見てください。 – silly

+0

あなたは良いメールアドレスに電子メールを送りますか? –

+0

なぜdownvote ?? – Macros

答えて

0

私は問題を発見しました。これはphp.iniのsendmail_from設定です。スクリプトがこの値を使用していないにもかかわらず、整形式の電子メールアドレスでなければならないようですが、それはそうではありませんでした。それを[email protected]に設定してサイトを再起動すると、トリックが行われました

0

は、あなたがそのような改行を使用してヘッダを終了する必要が

$headers = "From: " . $from . "\r\n"; 

を試してみてください。

+1

実際には、 "\ r \ n"の代わりにPHP_EOLを使用する必要があります。 – jribeiro

+0

@jribeiro私は実際にこれまで聞いたことがなかった。ちょっと読んだだけです。情報をありがとう。 – James