2014-12-03 49 views
0

在我的網站中,我有一點聯繫表單,它使用PHP將郵件發送到我的個人電子郵件地址。 在表格中,我要求用戶提供他的電子郵件地址。如果地址存在,腳本完美地工作,並且會很快收到消息。但是,如果用戶輸入錯誤的郵件地址,我永遠不會收到它。這是正常的嗎?下面是一小片我的劇本......如果發件人郵件無效,Php郵件不起作用

/* Prepare Email Subject */ 

$email_subject = '[CONTACT FORM]' . "\t" . $title; 

/* Prepare Email Message */ 

$email_message .= "Nom: ".clean_string($name)."\n"; 
$email_message .= "Email: ".clean_string($email)."\n"; 
$email_message .= "Telephone: ".clean_string($tel)."\n"; 
$email_message .= "Message: ".clean_string($msg)."\n"; 

/* Prepare Email Header */ 

$headers = 'From: '.$email."\r\n". 

'Reply-To: '.$email."\r\n" . 

'X-Mailer: PHP/' . phpversion(); 

/* Send Email and redirect */ 

mail($email_to, $email_subject, $email_message, $headers); 
header ('location: /?status=success#contact'); 

我要感謝大家的答案。如果問題不夠清楚,我很抱歉,我希望我的英語可以理解(我是法國人)!

對於那些誰不明白什麼是我的問題:

在我的劇本,我把用戶的郵件ADRESS在郵件標題中。 如果用戶給我一個有效的電子郵件,那麼我會收到消息,否則我不會。

不要擔心變量,這只是我腳本的最後部分,但我驗證了所有這些變量。

當我說「只有當地址存在」,我真的很想表明,如果地址未註冊,或者如果域不存在,它不起作用。 發送郵件之前,我通過應用Regex測試來驗證地址是否「有效」。 如果我輸入,例如:[email protected]我將不會收到郵件。這就是爲什麼它很奇怪,郵件地址格式很好。

blue112,我要創建一個郵局主管地址,並用它來發送這些郵件。

這裏的接觸形式,但不要垃圾郵件我:) My Website

+5

你應該檢查郵件被當週圍包裹的發送。如果(電子郵件($ EMAIL_TO .....){//當它發出執行},而且還要檢查是否所有的變量實際上有一個值。同時檢查是否生成了error_log中。 – Jordy 2014-12-03 15:11:01

+0

*「如果地址存在」 * - 你的意思是,如果它是「有效」如果是這樣,是的,它是正常的,也是應該的,否則你會得到從「電子郵件@榜樣」的電子郵件,你就不能肯定這是否是「.NET」,或「。 .COM」或點什麼。 – 2014-12-03 15:12:21

+0

好吧,我是唯一一個沒有在這裏抓的問題? – 2014-12-03 15:22:52

回答

1

你不應該使用用戶的郵箱發送郵件。

  1. 這是不好的做法。你是那種盜用其身份
  2. 如果用戶使用,例如,Gmail和你設置它的Gmail,因爲他知道它永遠不會發送電子郵件
  3. 他們都是偉大的機會,Gmail就不會信任你該郵件陷入垃圾郵箱

最好的方法是使用「有效」和可信的電子郵件在「from」標題字段中使用。

另外,關於您的腳本,您可以將`mail``函數包裝在一個if中,以瞭解在發送過程中是否一切正常。

if (mail($email_to, $email_subject, $email_message, $headers)) 
{ 
    header ('location: /?status=success#contact'); 
} 
else 
{ 
    echo "Sending mail failed"; 
} 

但是,這爲您提供了不用擔心郵件成功到達的問題。

+0

幾乎我所說的回覆他原來的帖子。 是的,他應該使用PHPMailer或類似的東西。 – Jordy 2014-12-03 15:19:28

+0

這不回答OP的問題;這是一個很好的做法,當然,但是OP正在問一個具體的問題。 OP僅向我們展示了一部分代碼,它使用了'clean_string()'函數,它包含代碼以防止某人輸入無效的電子郵件地址以及其他表單元素的其他好處。 – 2014-12-03 15:19:45

0

既然你最有可能的,如果他們輸入了無效的地址實際上不能做任何與電子郵件有用的,你應該檢查的電子郵件地址是有效的,也有不同程度的煩惱了,你可以去通過用戶得到這個信息是有效的:

  • 使用正則表達式來匹配用戶的電子郵件地址
  • ,要求確認他們的電子郵件,這捕獲輸入錯誤(有些煩惱)
  • 要求用戶之前先註冊他們可以使用聯繫表格(很大的煩惱)

你也可以讓你的郵件有靜態From和回覆到您自己的地址,以及包括用戶在郵件的實際體輸入的電子郵件地址,這樣可以確保你實際上得到的電子郵件,即使他們可能有給你的聯繫表格一個垃圾郵件地址。

+0

這不是真的,如果提交了一個匿名的建議或類似的東西,那麼電子郵件將是不相關的。然後再一次,你不知道他在用什麼,所以很難說。 – Jordy 2014-12-03 15:22:40