0

以下のコードがメールを送信しないのはなぜですか? エラーは何ですか?

<?php
if(isset($_POST['name'])){
    $msg="Name: ".$_POST['name']."\n Email: ".$_POST['email']."\n Address: ".$_POST['city']."\n Phone: ".$_POST['phone'];
    mail('sganake@gmail.com', 'New Trial Request', $msg);
    echo '<h2 align="center" style="color:green">Thank you for your message.</h2>';

} ?>

エラーはありません。受信トレイにメールが届かないだけです。これは IIS サーバーで実行されています。

4

5 に答える 5

0

PEAR::Mailパッケージを使用することをお勧めします。その後、SMTP経由でメールを送信できます。

require_once "Mail.php";

$from = "your@gmail.com";
$to = "sganake@gmail.com";
$subject = "New Trial Request";
$body = "Name $name, Address $address ...";
$host = "ssl://smtp.gmail.com";
$port = 465;
$username = "your@gmail.com";
$password = "password";

$headers = array(
    'From' => $from,
    'To' => $to,
    'Subject' => $subject
);
$smtp = Mail::factory(
    'smtp',
    array(
        'host' => $host,
        'port' => $port,
        'auth' => true,
        'username' => $username,
        'password' => $password
    )
);

$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
    echo("<p>" . $mail->getMessage() . "</p>");
} else {
    echo("<p>Message has been sent!</p>");
}
于 2012-07-31T05:51:20.937 に答える
0

これを試して

$headers = 'From: from@address.com' . "\r\n";
$validate = mail('sganake@gmail.com', 'New Trial Request', $msg, $headers);

if($validate)
{
  echo '<h2 align="center" style="color:green">Thank you for your message.</h2>';
}
else
{
  echo '<h2 align="center" style="color:red">Something went wrong.</h2>';
}

表示される場合'Something went wrong'は、PHP コードではなく、メール サーバーに問題があることを意味します。

于 2012-07-31T05:35:50.860 に答える
0

多くのメール サーバーで必要とされるように、SMTP 認証を使用してメールを送信する必要がある場合があります。詳細については、このリンクを確認してください。

于 2012-07-31T05:41:27.360 に答える
0

PHP の設定が不完全である可能性があります。以下を参照してくださいC://xampp/php/php.ini

sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

これは、電子メールをアクティブにするためのものです。あなたの設定は次のとおりかもしれません:

;sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
于 2012-07-31T05:50:09.933 に答える
-1

私はあなたのコードで何も変更しませんでしたが。これを試してください

<?php
if(isset($_POST['name'])){

    $to = 'sganake@gmail.com';
    $subject = 'the subject';
    $message = 'hello';

    $msg='Name:'.$_POST{name}. "\r\n".
         'Email: '.$_POST{email}. "\r\n".
        'Address: '.$_POST{city}. "\r\n".
         'Phone: '.$_POST{phone}. "\r\n";

    $headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

    $sent = mail($to, $subject, $message, $headers);
    var_dump($sent) // just to debug
    echo '<h2 align="center" style="color:green">Thank you for your message.</h2>';

} ?>
于 2012-07-31T05:50:41.730 に答える