2013-07-22 154 views
0

我已經在Google和Youtube上搜索這個答案,但還沒有找到答案。php聯繫表格電子郵件地址

我在我的網站上創建了一個非常簡單的聯繫表單。

http://www.torontoimc.com/contact

我已附加一個單獨的PHP文件來處理接觸形式的元件。

當有人通過我網站上的表單向我發送詢問時,我收到除了該人的電子郵件地址輸入部分信息之外的所有信息。

這是非常重要的,我收到該電子郵件地址,否則我將無法回覆誰曾發送給我。

我已經嘗試設置形式發送到我的Gmail和Outlook電子郵件,但它只是將其作爲:

這只是表明發件人的電子郵件地址作爲一些隨機的名字「@ hemi.websitewelcome.com」

我不確定這是服務器端問題還是PHP文件的問題。

我附上了我的聯繫表單和PHP文件的代碼。

下面是聯繫表格代碼:

<form action="formprocess.php" method="post" name="contact"> 
    <fieldset> 

    <label>First Name</label> 
    <input name="first_name" type="text"/> 

    <label>Last Name</label> 
    <input name="last_name" type="text"/> 


    <label>Email</label> 
    <input name="email_add" type="text"/> 


    <label>Please write your inquiry below.</label> 

    <textarea name="message" rows="15" cols="40"> 
    </textarea> 

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


    <input type="reset" name="reset" id="reset" value="Reset"/> 


    </fieldset> 

    </form> 

這裏是PHP代碼:

<?php 

    $first_name = $_POST['first_name']; 

    $last_name = $_POST['last_name']; 

    $email_add = $_POST['email_add']; 

    $message = $_POST['message']; 

    $to = "[email protected]"; 

    $subject = "Inquiry for TorontoIMC"; 

    mail ($to, $subject, $message, "From: " . $first_name . $last_name . $email_add); 

    header('Location: thanks.html'); 
    exit(); 

    ?> 

我道歉,如果這是一個重複的問題,但我是一個新手到PHP,並沒有真的能夠找到答案,如果有人可以請幫助我,我會非常感激。

感謝,

Latish沃赫拉

+0

我建議使用默認電子郵件地址作爲發件人地址,並將提交的電子郵件地址作爲郵件的一部分。這意味着你不包括用戶提交的數據作爲標題的一部分,一方面。另外,有些郵件服務器會默默地丟棄郵件,郵件中包含形成不良的From行,這意味着如果用戶的電子郵件地址中存在拼寫錯誤,則電子郵件將不會被髮送(並且您永遠不會知道) – andrewsi

回答

2

試試這個:

$headers = "From: $first_name $last_name <$email_add>\r\n"; 
mail ($to, $subject, $message, $headers); 

我加爲 「\ r \ n」 來從

+1

您也可能需要添加-f標誌,設置信封發件人:'郵件($ to,$ subject,$ message,$ headers,「-f」。$ email_add);' – mti2935

0

我明白你試圖在做FROM一行,但您應該使用「真實」FROM發件人。許多服務器不會允許您使用來自不是主機的域的FROM行(想想吧,事實是你在說謊,填寫表單的人沒有實際上是發送該電子郵件)。

其次,如果您打算使用name last name <email>,請按照user4035的方式對FROM中的電子郵件進行造型,這可能不僅僅是正常練習的方式,也可能是您編寫它的方式,加入在沒有空格的字段中,最後會出現FROM行,如FrançoisMARTIN [email protected],該行可能包含可能導致某些服務器窒息或放棄的非法字符和/或空格。相反'FROM: '. $first_name . ' '. $last_name. ' <'. $email_add. '>'將產生FROM: François Martin Mellier <[email protected]>。但是,您應該再次使用您發送的同一個域中的真實帳戶(可能類似'FROM: New enquiry <[email protected]>'?)。正如已經指出的那樣,在郵件正文或主題行中包含email_add字段以便接收它;那些是適當的地方。

使用-f參數(如mti2935指出的)總是一個好主意,但前提是該電子郵件計數屬於與服務器相同的域。

作爲一個側面說明,儘量把誤差考慮在內,最低:

if (mail ($to, $subject, $message, $headers)) { 
header('Location: thanks.html'); 
} else { 
header('Location: error.html'); 
} 

可能會很長的路要走。

+0

我最終在Youtube上使用了一個新的PHP教程聯繫表格。我是新來的PHP,所以這個教程真的很有用。它甚至包括驗證。我感謝所有的幫助和輸入人。 –

相關問題