2009-05-17 5 views
0
$to = "[email protected]"; 
$subject = "Auction Registration Confirmation"; 
$from = "From: [email protected]"; 
$body = "Test Message"; 
if (mail($to, $subject, $body, $from)) { 
    echo("<b>Message sent</b>"); 
    header("Location: http://www.mydomain.com/thankyou.html"); 
} else { 
    echo("<b>Message failed</b>"); 
} 

メールが送信されるとき、送信元アドレスは必要なものではなく、サーバーのログイン名になります。PHPのmail()関数が "送信元"アドレスを使用していない

サーバーのログイン名をfromメールIDに置き換えるためのアイディア。

答えて

0

あなたのPHPコードに間違いがないように見えます - 私は同じ仕事をしている非常に似たコードを持っています。

おそらくあなたのメール設定に何らかの設定が間違っていますか?

+0

すべての管理が行われるサーバーを想定し、ログイン名は「admin」です。コードは問題ありませんが、電子メールが送信されると、送信元アドレスが "admin"で、[email protected]では表示されないという問題があります。 –

+0

はい、私はその質問を理解しています。 8-) "私の同様のコードがうまく動作する"と言うとき、私はあなたがやっているように "From:"行をPHP mail()コマンドに渡していて、正しいFromヘッダー。 – RichieHindle

+0

私に解決策を教えてください –

0

PHPメール機能は、サーバー上で実行されているMTAに依存しています。あなたのMTAが$ from変数をあなたのログイン名に強制的に設定すると確信しています。

+0

解決策はありますか? –

+0

@pete解決策は、別のMTAを使用するか、MTA設定を編集することです。 – Unknown

+0

@unknown、右、私はMTA設定を編集していることを知っていますが、何とか? –

0

これを試しましたか?それはあなたが、これは本当にサーバーの設定によって、一部の構成で動作します

mail($to, $subject, $body, $from, "-f $from"); 

を試みることができる私のために罰金

<?php 
$to = "[email protected]"; 
$subject = "subject"; 
$message = "message"; 
$from = "[email protected]"; 
$headers = "From: $from"; 
mail($to,$subject,$message,$headers); 
echo "Mail Sent."; 
?> 
0

に動作します。 それ以外の場合は、上記の推奨どおりにMTA設定を編集するか、mail()をスキップしてSMTPmailerに直接接続するPHPmailerのようなクラスを使用してください。

関連する問題