シンプルなコンタクト フォーム機能を備えたテンプレートを使用していますが、プロセス フォームは非常に単純で、メールを受信できない理由がわかりません... デバッグ テストを実行したところ、問題なく動作しています。私がオンラインで読んだところによると、mail() 関数はサポートされなくなったか、実際にはメールを送信していないようです。ここで私を助けて、これが機能しない理由と修正方法を理解してもらえますか? 前もって感謝します!
contact.php
<form method="post" id="contactForm" action="processForm.php">
<div class="clearfix">
<div class="grid_6 alpha fll"><input type="text" name="senderName" id="senderName" placeholder="Name *" class="requiredField" /></div>
<div class="grid_6 omega flr"><input type="text" name="senderEmail" id="senderEmail" placeholder="Email Address *" class="requiredField email" /></div>
</div>
<div><textarea name="message" id="message" placeholder="Message *" class="requiredField" rows="8"></textarea></div>
<input type="submit" id="sendMessage" name="sendMessage" value="Send Email" />
<span> </span>
processForm.php
<?php
// Define some constants
define( "RECIPIENT_NAME", "Jenna" );
define( "RECIPIENT_EMAIL", "your_mail@gmail.com" ); //left it standard for privacy reasons
define( "EMAIL_SUBJECT", "Visitor Message" );
// Read the form values
$success = false;
$senderName = isset( $_POST['senderName'] ) ? preg_replace( "/[^\.\-\' a-zA-Z0-9]/", "", $_POST['senderName'] ) : "";
$senderEmail = isset( $_POST['senderEmail'] ) ? preg_replace( "/[^\.\-\_\@a-zA-Z0-9]/", "", $_POST['senderEmail'] ) : "";
$message = isset( $_POST['message'] ) ? preg_replace( "/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message'] ) : "";
// If all values exist, send the email
if ( $senderName && $senderEmail && $message ) {
$recipient = RECIPIENT_NAME . " <" . RECIPIENT_EMAIL . ">";
$headers = "From: " . $senderName . " <" . $senderEmail . ">";
$success = mail( $recipient, EMAIL_SUBJECT, $message, $headers );
}
// Return an appropriate response to the browser
if ( isset($_GET["ajax"]) ) {
echo $success ? "success" : "error";
} else {
?>
<html>
<head>
<title>Thanks!</title>
</head>
<body>
<?php if ( $success ) echo "<p>Thanks for sending your message! We'll get back to you shortly.</p>" ?>
<?php if ( !$success ) echo "<p>There was a problem sending your message. Please try again.</p>" ?>
</body>
</html>
<?php
}
?>
また、テストすると「メッセージを送信してくれてありがとう!...」が返されます。
EDIT UPDATE: ありがとうございましたが、サーバーにアップロードしたときに機能しているようです。メールが届くまで思ったより時間がかかりました。私のコードはすべて正しく、何も問題はありませんでした。お時間を割いていただきありがとうございます。