0

私のHTML5フォームは完全に正常に検証されますが、送信時にデータ入力を送信したいと思います。いくつかのチュートリアルに従い、基本的なチュートリアルは機能しましたが、電子メールを送信するために、より複雑なPHPスクリプトを試しましたが、何も送信されませんか?

<?php
// Subject and Email Variables

$emailSubject = 'HTML5 Form Submission';
$webMaster = 'John.Doe@live.co.uk';

//Gathering Data variables

$FNameField = $_POST['FName'];
$LNameField = $_POST['LName'];
$ageField = $_POST['age'];
$emailField = $_POST['EMail'];
$URLField = $_POST['URL'];
$telField = $_POST['tel'];
$messageField = $_POST['message'];

$body = <<<EOD
<br><hr><br>
Name: $FNameField<br>
Age: $ageField <br>
Email: $emailField <br>
Website: $URLField <br>
Telephone: $telField <br>
Message: $messageField <br>
EOD;

    $headers = "From: $email\r\n";
    $headers .= "Content-type: text/html\r\n";
    $success = mail($webMaster, $emailSubject, $body, $headers);

    $theResults = <<<EOD

<html>
<head>
<title>JakesWorks - travel made easy-Homepage</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
    background-color: #f1f1f1;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
    font-style: normal;
    line-height: normal;
    font-weight: normal;
    color: #666666;
    text-decoration: none;
}
-->
</style>
</head>

<div>
  <div align="left">Thank you for your interest! Your email will be answered very soon!</div>
</div>
<div>
<a href="Forms.php">Click Here to return to the previous page</a>
</body>
</html>
EOD;

echo "$theResults";




?>

編集:それはまたウェブでホストされているので、そこに問題はなく、私のサーバーはPHPを理解しています

4

2 に答える 2

1

Gmailがメッセージを受け入れることを知っているので、サーバーエラーではないことがわかります。

私の経験では、これをライブアカウントに送信できるようにする方法はたくさんありますが、一番はヘッダーです。

Webフォームをほとんどの電子メールアカウントに送信(および受け入れ)するために、次のヘッダーを使用しました。

$headers = 'From: Example Last <noreply@example.com>' . "\r\n"; // Set from headers
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";

Fromヘッダーに注意してください。大文字の「名前」の後に、スペースが続きます。スペースの後に、送信元のWebサイトに関連する電子メールがあります。あなたの場合、メールは「<noreply@mattmeadows.info>」である必要があります。

<html>これで、メールは、と<body>タグを含む適切なhtmlメールが送信されたことを確認します。プレーンテキストを送信する方が簡単で、見栄えがする必要がないため(送信されるため)、ヘッダーをプレーンテキストの電子メールに設定できます。

次に$body、次のように作成する必要があります。

$body = "Name: $FNameField
Age: $ageField
Email: $emailField
Website: $URLField
Telephone: $telField
Message: $messageField";

結論として、あなたの質問に対する答えは次 のとおりです。ライブメールサーバーはあなたのphpメールフォームを拒否しています。次の変更を加えることができ、すべての電子メールをメールで送信できるはずです。

于 2013-03-03T00:09:58.527 に答える
0

定義したことを確認してください

ini_set("SMTP","smtp.example.com" ); 
ini_set('sendmail_from', 'user@example.com'); 

または、iniファイルで実行します。

また、ブレークマークアップの入力とバックスラッシュを忘れないでください。

于 2013-03-03T00:06:33.747 に答える