簡體   English   中英

使用php將聯系表單發布到電子郵件中不起作用

[英]posting contact form to email using php not working

我已經為新網站創建了“即將推出”着陸頁。 在網站設計和開發完成之前,我只希望能夠收集感興趣的各方的電子郵件地址-應該直接提交給我的電子郵件。 我已經編寫了以下代碼,但是在測試過程中沒有收到任何發送到我的地址的電子郵件:

HTML:

form method="post" name="myemailform" action="emailform.php">
<div id="subscribe">
    <input type="text" placeholder="enter your email address..." name="emailAddress" id="emailAddress">
    <input type="submit" value="Submit">
    <div class="clear"></div>
  </div>
</form>

PHP:

<?php
if(!isset($_POST['submit']))
{
    //This page should not be accessed directly. Need to submit the form.
    echo "error; you need to hit submit";
}
$visitor_email = $_POST['emailAddress'];
$email_from = $_POST['emailAddress'];

// Validate FIRST
if(empty($visitor_email))
{
    echo "Email address is required";
    exit;
}

$email_from = 'myemail@gmail.com';
$email_subject = "New Form";
$email_body = "You have received a new notifcation from $visitor_email.\n".

$to = "myemail@gmail.com";
$headers = "From: $email_from \r\n"

// SEND EMAIL
mail($to,$email_subject,$email_body,$headers);
?>

這是我第一次嘗試服務器端腳本。 您可以在我的代碼中看到任何不正確的內容嗎?

您的條件陳述

if(!isset($_POST['submit']))

正在尋找一個命名的提交按鈕:

<input type="submit" value="Submit">

應該是

<input type="submit" value="Submit" name="submit">

如果您的實際代碼似乎也缺少< for form method="post"

您還缺少$headers = "From: $email_from \\r\\n"

應該顯示為$headers = "From: $email_from \\r\\n";

加,

$email_body = "You have received a new notifcation from $visitor_email.\n".

刪除末尾的點並替換為分號

$email_body = "You have received a new notifcation from $visitor_email.\n";

並使用錯誤報告

存在

error_reporting(E_ALL);
ini_set('display_errors', 1);

放在您打開<?php標記之前,如果在代碼中發現,它將發出任何錯誤信號。


邊注:

您不需要這個name="myemailform"

您是從本地計算機還是托管服務器運行測試? 發送電子郵件的要求可以在以下位置找到: http : //php.net/manual/en/mail.requirements.php

您可以訪問php.ini嗎? 您需要在服務器中安裝可運行的電子郵件系統,或者訪問php.ini來配置SMTP參數。 您正在運行什么操作系統?

您需要在計算機上設置SMTP服務器才能發送郵件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM