我試圖運行一個電子郵件表單,它從用戶的輸入表單中獲取文本並將它們發送到我想要的電子郵件(在下面的php中被看作$ myemail)。爲什麼此電子郵件表格代碼無效?
<form method="post" name="contact_form" action="Contact.php">
Your Name: <input type="text" required name="name">
Email Address: <input type="text" required name="email">
Message: <textarea required name="message"></textarea>
<input type="submit" value="Submit">
</form>
<?php
$errors = '';
$myemail = 'enterDesiredEmail';
if(empty($_POST['name']) || empty($_POST['email']) || empty($_POST['message'])) {
$errors .= "\n Error: all fields are required";
}
$name = null;
$email_address = null;
$message = null;
$name = $_POST["name"];
$email_address = $_POST["email"];
$message = $_POST["message"];
if (!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i",$email_address)) {
$errors .= "\n Error: Invalid email address";
}
if(empty($errors)) {
$to = $myemail;
$email_subject = "Contact form submission: $name";
$email_body = "You have received a new message. ".
" Here are the details:\n Name: $name \n ".
"Email: $email_address\n Message \n $message";
$headers = "From: $myemail\n";
$headers .= "Reply-To: $email_address";
mail($to,$email_subject,$email_body,$headers);
}
?>
我把上面的代碼吐出到網頁上,然後把文件上傳到我的服務器。在網上訪問網頁,填寫表單內容並點擊sbmit,頁面刷新後輸入文本和textarea會按預期清除。當我查看了我設置的電子郵件時,沒有收到任何消息。我能做些什麼來糾正這個代碼,以便所需的電子郵件地址實際上收到一條消息?
非常感謝。
郵件命令需要設置sendmail或其他郵件服務器。 –
嘗試並向您的標題添加類型,以便服務器知道如何處理腳本。按類型我的意思是如果它是一個HTML電子郵件或只是文本。其次,爲郵件功能實例化一個變量。如果郵件實際發送則返回true,否則返回false。例如$ send = mail(....):if($ sent)做東西....希望這會有所幫助 –
您需要在標題字段之間加上'\ r \ n',而不是'\ n'。 – Barmar