0

私はPHPフォームを持っています。フォームは機能し、メールを送信できます。特定のメール アドレスから送信先のメール アドレス (xxx@a.com) に送信されているようには見えません。

以下で設定したからこれらのメールを送信したいとyyy@a.com思います。PHPは次のとおりです。

<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'Contact'; 
$to = 'me@a.com'; 
$subject = 'Contact';

$body = "From: $name\n E-Mail: $email\n Message:\n $message";

if ($_POST['submit']) {              
    if (mail ($to, $subject, $body, $from)) {
        echo '<script type="text/javascript">
                alert("Your message has been sent!");
            </script>';
    } else { 
        echo '<script type="text/javascript">
                alert("Something went wrong, try again.");
            </script>'; 
        }
    }
?>

$from を yyy@a.com に変更しようとしましたが、メールの送信元アドレスは変更されません。From アドレスが設定されないのはなぜですか?

4

1 に答える 1

1

4 番目のパラメーターは ではありませfromextra headers。したがって、追加のfromヘッダーを含めるには、次のようにします。

<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'Contact <yyy@a.com>'; // You can combine name and address
$to = 'xxx@a.com'; 
$subject = 'Contact';


$body = "From: $name\n E-Mail: $email\n Message:\n $message";

$extraHeaders = 'From:'.$from; // Header field + header field value.

if ($_POST['submit']) {              
    if (mail ($to, $subject, $body, $extraHeaders)) { // Pass the extra headers...
        echo '<script type="text/javascript">
                alert("Your message has been sent!");
            </script>';
    } else { 
        echo '<script type="text/javascript">
                alert("Something went wrong, try again.");
            </script>'; 
    }
}
于 2013-08-11T00:19:11.737 に答える