2012-08-23 32 views
1

我希望能夠從我的主頁發送郵件,但不能按我的需要工作。我收到一封郵件,但沒有在家裏說。只是說未知。我在兩個不同的地方有這個東西。另一個地方,我用其他textareas和那裏我得到我的郵件中的一切,它的工作正常,但這個我想工作的其他地方,我只希望他們添加那裏的電子郵件,然後它應該與所有信息一起發送。從主頁發送郵件。我在代碼中缺少什麼?

我在我的網頁代碼:

<form id="subscribe" class="clearfix" method="post" action="get_mail.php"> 
    <div class="field alignleft"> 
     <input type="text" value="Enter your email" onclick="if(this.value=='Enter your email')this.value='';" onblur="if(this.value=='')this.value='Enter your email';" /> 
    </div> 
    <div class="search-btn"> 
     <input type="submit" value="" /> 
    </div> 
</form> 

然後,我有這個PHP腳本

<?php 

    //----------------------------------------------------- 
    //----------------------------------------------------- 
    $address= "[email protected]"; 
    //----------------------------------------------------- 
    //----------------------------------------------------- 

    $name = $_REQUEST["name"]; 
    $email = $_REQUEST["email"]; 
    $website = $_REQUEST["website"]; 
    $subject .= "You have an email from your web site (from $name)! \n\n"; 
    $message_content = strip_tags($_REQUEST["message"]); 

    $headers = "From: $name <$email>\n"; 
    $headers .= "Reply-To: $subject <$email>\n"; 

    $message = "--$mime_boundary\n\n"; 

    $message .= "You have an email from your web site: \n\n\n"; 
    $message .= "Name: $name \n\n"; 
    $message .= "Email: $email \n\n"; 
    $message .= "Website: $website \n\n"; 
    $message .= "Message: $message_content \n\n"; 

    $message .= "--$mime_boundary--\n\n"; 

    $mail_sent = mail($address, $subject, $message, $headers); 
    echo $mail_sent ? "Success, mail sent!" : "Mail failed"; 

?> 
+0

您能告訴我們您遇到的錯誤嗎? –

+0

除非您發送消息的多個版本(即,html和明文),否則您並不需要'$ mime_boundary'行,或者您有附件。這是一個要刪除的東西。此外,您應該確保您的郵件服務器設置可供您的郵件進程使用,或者包含Gmail或其他連接詳細信息以供發送。 'mail()'運行*底層*服務器的郵件發送功能。 –

回答

3

兩件事情:

  1. 嘗試使用替代 「\ n」 個$頭「\ r \ n」。

  2. 據我所知,一些主機(我認爲GoDaddy或Hostgator會這樣做)會覆蓋已發送電子郵件中的「發件人」值,並將其更改爲已發送的郵件中的「發件人」值。這意味着,如果您的託管帳戶中沒有明確指定「[email protected]」,您將無法從該地址發送電子郵件,並且始終會覆蓋該地址。你必須聯繫你的主機來檢查這一點。如果可能,我還建議在另一臺服務器上檢查腳本。

2

無窗體域的出現有名字 - 你的代碼在這裏:

$name = $_REQUEST["name"]; 
$email = $_REQUEST["email"]; 
$website = $_REQUEST["website"]; 

需要與名字「名」,「電子郵件」和「網站」表格字段。例如,您的「電子郵件」字段需要如下所示:

<input type="text" name="email" ... /> 
+0

但在第一種情況下,我需要所有這些領域,但在第二我不。我可以在代碼中預寫它們,只添加他們在我的文本字段中提交的電子郵件地址嗎?那將是什麼樣子?如果我使用上面的代碼,並且他們輸入一個電子郵件地址,我會收到一封郵件,但它說它來自未知。我甚至不知道它是誰。 – user1540911

+0

'website'和'name'不是特殊的頭字段,所以它們必須位於工作頁面的源代碼中。你能在原始頁面找到那些帶有這些名字的字段嗎?如果你想要不可見的字段,只需將它們放入爲'。 –