2012-08-16 48 views
-1

我有這段代碼,應該發送郵件到一個地址。問題是:在頭文件中,我應該得到像「Bob Marley」這樣的名稱,但是如果名稱大於一個單詞,它會顯示「(未知發件人)」。如果這個名字恰好是一個單詞,它就會起作用。如果我將$ _POST ['nume']值連接到$消息,它就在那裏。出於某種原因,在標題中,它不會像它應該那樣工作。在mail()函數中,'From:'只顯示第一個世界

<form name="contact" method="post" class="clearfix" id="formular"> 
    <input class="inputC" type="text" placeholder="Full Name" id="numeCo" onClick="clearValue(this.id)" onBlur="testValue(this.id)" name="nume"/> 

    <input class="inputC" type="text" placeholder="E-mail Address" id="adresaCo" onClick="clearValue(this.id)" onBlur="testValue(this.id)" name="adrMail"/> 

    <input class="inputC" type="text" placeholder="What services do you need?" id="serviciiCo" onClick="clearValue(this.id)" onBlur="testValue(this.id)" name="servicii"/> 

    <div class="sumarise"> 
    <textarea class="textAreaC" placeholder="Please summarize your project..." id="textArCo" onClick="clearValue(this.id)" onBlur="testValue(this.id)" name="descriere"></textarea> 
    </div> 
    <div class="sB clearfix"> 
    <input class="submitC" type="submit" value="Send Message" /> 
    </div>        
    </form> 
    <?php 
    if(isset($_POST['nume'], $_POST['adrMail'], $_POST['descriere'])) 
    { 
    /*echo "<script> return checkForm();</script>";*/ 
    $to = "[email protected]";                    
    $subject = $_POST['servicii']; 
    $message = $_POST['descriere'];           
    $name = $_POST['nume']; 
    $headers= "From: ".$name."\n".'Reply-To: '.$_POST['adrMail']; 
    mail($to,$subject,$message,$headers);          
    } 
    ?> 
+0

嘗試使用\ r \ n而不是隻\ n的頭。 – Henkealg 2012-08-16 11:15:17

+0

#firstworldproblems – 2012-08-16 11:17:45

+0

嘗試使用PHPMailer,它更易於使用和配置。 – 2012-08-16 11:18:04

回答

0

我打算把這個作爲答案,因爲我認爲這對你來說很重要。

使用mail()函數時存在一個漏洞,就像用戶定義的From頭一樣。看到這個問題在這裏:Proper prevention of mail injection in PHP

但是解決您最實際的問題:

  • 嘗試使用\ r \ n以及(如@Sudhir說)(我發現\ r \ n是一些郵件更柔順客戶端)
  • 放在太像@Sohnee電子郵件說
+0

這是作爲一個遲到的回覆,但謝謝你的鏈接。知道的確很重要。 – 2012-10-02 22:23:26

2

的 「到」 地址需要符合RFC 2822 - 也許是從地址也做:

From: Birthday Reminder <[email protected]> 

PHP Mail examples

PHP文檔還指出,\n應該是有效的,如果您在\r\n上遇到問題,建議您推薦 - 所以我認爲這不太可能是問題所在,儘管這樣做也沒有什麼壞處。

+1

+1名稱不是電子郵件地址。打我到那一個:) – Waygood 2012-08-16 11:24:52

+0

我知道這是一個遲到的答覆,但謝謝你的回答。 – 2012-10-02 22:25:19